The programming model of Java is object-oriented. Objects, instantiated from classes, are key to every Java application.
Every class defines data that describes the properties of every object.
A bank account might have an account number and a balance. Functions of a class specify the possible actions that can be performed on objects, for instance a money transfer from one account to another. Complex objects can be constructed through aggregation and inheritance. An object can contain others, and one class can inherit properties from another. A class named, SavingsAccount, could inherit from a class Account and extend its behavior.