Alan Kay summarizes the five basic features of Smalltalk (one of the languages on which Java is based):
① All things are objects
Consider an object as a fancy variable that can store data and perform operations on itself.
② programs are collections of objects that tell each other what they want to do by sending messages.
You can resemble a message as a call request to a method on a particular object.
③ each object has its own storage that is composed of other objects.
In other words, you can create a new type of object by creating a package that contains an existing object.
④ Each object has its type.
Each object is an instance of a class (instance).
⑤ all objects of a particular type can receive the same message.
Booch a more concise description of the object: The object is a friend state (internal data), a behavior (method), and an identity (a unique address in memory).
Introduction to Thinking in Java objects (1)