The essence of programming is to use programming language to solve a certain kind of specific problems. The definition of a problem is called modeling, such as defining various nouns, actions, results, etc. in the problem domain. The solution proposed for the specific problem is called the algorithm.
One of the challenges of object-oriented programming is to establish a mapping between the elements in the problem space and the objects in the space.
object is the definition of various "things" in the problem domain or in the solution space. The design process of the object is the process of solving the problem.
Everything is an object, a program is a collection of objects, objects and objects through the message communication.
Each object provides an interface to provide services externally through an interface, where the interface refers to the method defined by the object.
In the design of the object, there are a variety of guiding ideology, can design a stable and robust program. ---design patterns
Java programming ideas, Introduction to Objects