Klasy i obiekty są dwoma głównymi aspektami programowania obiektowego. Klasa tworzy nowy typ gdzie obiekty to instancje klasy. Obiekty mogą przechowywać dane przy użyciu zwykłych zmiennych, które należą do obiektu. Zmienne należące do obiektu lub klasy są nazywane polami . Obiekty mogą mieć także funkcje. Takie funkcje są nazywane metodami klasy. Ta terminologia jest ważna, ponieważ pomaga nam odróżnić funkcje i zmienne, które są niezależne od tych, które należą do klasy lub obiektu. Łącznie pola i metody można nazwać atrybutami tej klasy.