Na podstawie zamieszczonego fragmentu kodu można stwierdzić, że element o nazwie rysunek jest MojaKlasa obj1 = new MojaKlasa();
obj1.rysunek();
W tym fragmencie kodu wywołujesz funkcję rysunek na obiekcie obj1, który jest instancją klasy MojaKlasa. To znaczy, że rysunek jest metodą tej klasy. Tak naprawdę, w programowaniu obiektowym korzystanie z metod to chleb powszedni – to one definiują zachowanie obiektu. W praktyce, metody są tym, co pozwala obiektom „robić” coś konkretnego, czyli realizować logikę biznesową albo odpowiadać na zdarzenia. Moim zdaniem warto pamiętać, że w standardach takich jak Java czy C#, notacja obj1.rysunek() jednoznacznie wskazuje na wywołanie metody (nawiasy są tu sygnałem, że chodzi o funkcję, a nie o dostęp do pola). To zresztą jest bardzo czytelna konwencja, spotykana praktycznie w każdym języku zorientowanym obiektowo. Dla przykładu, jeśli chciałbyś uzyskać dostęp do pola w obiekcie, nie używałbyś nawiasów, tylko napisałbyś obj1.nazwapola. W pracy nad większymi projektami warto też pamiętać o tzw. enkapsulacji – metody pozwalają „schować” szczegóły implementacji i udostępnić tylko to, co faktycznie powinno być dostępne z zewnątrz. W sumie, wywołanie obj1.rysunek(); dokładnie pokazuje, jak od strony praktycznej wyglądają interakcje z metodą klasy.
Wielu początkujących programistów myli pojęcia takie jak pole, metoda, konstruktor czy obiekt – to całkiem powszechny błąd. Spójrzmy na ten fragment kodu: obj1.rysunek(). Najczęstsza pomyłka to uznanie rysunek za pole lub obiekt, bo wszystko wydaje się „należeć” do obj1. Jednak w językach takich jak Java czy C#, wywołanie z nawiasami okrągłymi oznacza jednoznacznie wywołanie metody, a nie dostęp do pola. Pola to najczęściej dane, które nie wymagają nawiasów do odczytu czy zapisu – np. obj1.wysokosc. Konstruktor to zupełnie inna sprawa: służy do inicjowania nowej instancji klasy, wywoływany jest tylko raz przy tworzeniu obiektu (czyli MojaKlasa obj1 = new MojaKlasa();), a nie przez notację kropkową na obiekcie. Kolejnym typowym problemem jest utożsamianie metody z obiektem, bo skoro działa na obiekcie, to może też nim być – ale to nie tak. Obiektem jest obj1, czyli konkretna instancja MojaKlasa, natomiast rysunek jest „czynnością”, którą ten obiekt może wykonać. To bardzo ważne rozróżnienie, bo mylenie tych pojęć prowadzi do chaotycznego kodu i trudności z utrzymaniem projektu. W nowoczesnych językach OOP przyjęło się, by metody nazywać czasownikami („narysuj”, „oblicz”), a pola rzeczownikami („kolor”, „wysokosc”). Takie podejście sprawia, że kod jest bardziej czytelny i łatwiej go rozwijać w zespole. Dlatego praktycy zawsze zwracają uwagę na właściwe rozróżnianie tych elementów, bo to podstawa dobrej architektury kodu.