Java and Object Oriented (OO) programmingDefining OO is quite a daunting task - more than one web page can contain. The general notion of OO programming is that procedural programming looked at the problem as an algorithm to be solved - using a procedural language. The problem was broken down into functions and sub-functions, each implementing a key peice of the algorithm.
In OO programming, you start by looking at the problem as a set of objects that interact. Within each object, you capture key aspects of the object's behavior that are important to the problem to be solved. You write code to implement the object's features and attributes. Later on, you connect the objects together, and allow them to interact. Within any given object, the code may look exactly like procedural code generated by "Structured Programming". The difference is in a) how you got there, and b) the overall structure of the solution (modules vs. objects).
There is a rather good intro book on the topic of OO - see if you can get it from a local library:
The Object-Oriented Approach, by Satzinger and Orvik (2nd edition)
Course Technology, ISBN 0-619-03390-8
The best way to understand OOP, and how Java implements it, and what that means to the programmer, is to do the readings suggested and practice on the exercises in the book.
Reading different descriptions of OOP and Java can help too, so that if you don't quite understand one another may help fill in the gaps. Some of my favourite resources are the free online tutorials and texts, especially the Sun tutorials at:
which you can do online or download to browse at your leisure, and the text Thinking in Java, 2nd edition, at:
which you can also either browse online or download for free--and it's also very good for extra examples.