W
programowaniu obiektowym klasa jest częściową lub całkowitą definicją dla
obiektów. Definicja obejmuje dopuszczalny stan obiektów oraz ich zachowania. Obiekt, który został stworzony na podstawie danej klasy nazywany jest jej
instancją. Klasy mogą być
typami języka programowania - przykładowo, instancja klasy
Owoc będzie mieć typ
Owoc. Klasy posiadają zarówno
interfejs, jak i
strukturę. Interfejs opisuje, jak komunikować się z jej instancjami za pośrednictwem
metod, zaś struktura definiuje sposób mapowania stanu obiektu na elementarne atrybuty.