By using OOP, each piece is organized naturally, without you having to actually think about the organization. Combining the fact that at one time you are forced to organize your code and at the other, that the organization is natural, is an amazingly powerful feature. At the heart of Java is support for these objects you have been hearing about. They come in a form called a class . Actually, there is a Java class called Object which all classes inherit from, so all classes literally are Objects.
Objects are instances of classes.
In this sense, classes can be thought of as a template for creating an object. Take as an analogy a rectangle. Now when you write the code for the rectangle, you create it in a class. However, to take advantage of the code, you need to create an instance of that class. The instance is a single Rectangle object.