Ive been programming for about a couple of months now. All self taught. I'd probably consider myself as an intermediate/advanced Java programmer. But I still have some questions that I seem to never understand the answer.
Firstly, one of my questions is... what is an object??? I cannot believe that I don't know what an object is despite me creating calculators, games, softwares that finds out a maths solution (I created my own SUVAT solver, for those of you who do mechanics will be familiar with this). Anyways yeah, I have no idea what an object is. I just know from instinct now when to create one and when to use one. The way I think of it is that it's like a key, its a key to access and use methods and variables from a different class. Would you agree to that definition? Ive searched online and ive been getting answers like 'it has a behaviour and a state' and sometimes people somehow bring animals in the definition of an object like, 'dog is an object, it has 2 ears and 4 legs' and I'm like... what are you on about?!
Secondly, I have this idea for an android app but I'm not sure whether I am ready to try it out. It is pretty complex to make since one of its features is to send instant messages through the internet... and I dont think I know that much about networks. So are there any good videos/articles you can suggest for networking? (bare in mind im a complete noob when it comes to networking, i have no idea what a server is, socket, HTTP etc).
Thirdly, what do these kind of statements mean:
Socket socket = new Socket("google.com", 80);
OutputStream out = socket.getOutputStream();
I understand the part where socket is an object of the Socket class but I dont really understand the second line where out = socket.getOutputStream();. Does this tell the computer to get the value of socket.getOutputStream and make that equal to the out object? And by doing that, is the object out a constant? E.g. has its value been finalized to socket.getOutputSteam?
Thanks for your help guys. Im new around here and hopefully I'll be around for more.