Klasa nie jest samodzielnym bytem, lecz szablonem do tworzenia nowych obiektów określonego typu i posiadających określone zachowanie. Obiekt utworzony na podstawie danej klasy nazywany jest jej instancją, a proces jego tworzenia – instancjonowaniem.

Poszczególne instancje klasy posiadają ten sam zbiór zachowań i atrybutów, lecz różnią się przechowywanymi w nich wartościami. Przykładowo, klasa Samochód opisuje pojęcie „samochodu” poprzez wymienienie charakteryzujących go atrybutów: prędkości maksymalnej, mocy silnika, producenta czy modelu. Jednak dwie różne instancje tej klasy będą różnić się od siebie wartościami tych atrybutów: jeden samochód może mieć prędkość maksymalną 220 km/h, zaś drugi – 240 km/h.

Interfejs

Uwaga: w tej sekcji termin „interfejs” nie odnosi się do pojęcia interfejsu funkcjonującego w języku Java, aczkolwiek są one ze sobą powiązane.