W klasie (w ujęciu programowania obiektowego) można zdefiniować różne rodzaje składowych, najczęściej: właściwości/pola oraz metody. Właściwość (lub pole, zależnie od języka i konwencji) opisuje stan obiektu, czyli dane, które obiekt "ma" (np. identyfikator, nazwa, status). Metoda opisuje zachowanie, czyli czynność/operację, którą obiekt potrafi wykonać (np. przeliczyć wartość, wygenerować wynik, zaktualizować stan).
Odpowiedź "dwie właściwości." jest poprawna, ponieważ w przedstawionym fragmencie kodu klasy widać dwie składowe, które mają formę deklaracji właściwości/pola (nie mają listy parametrów jak funkcja i nie reprezentują wywoływalnego zachowania). Takie elementy rozpoznaje się zwykle po:
- deklaracji typu i nazwy składowej (np. zmienna członkowska),
- albo konstrukcji właściwości z akcesorami dostępu (np. blok odczytu/zapisu),
- braku nawiasów wywołania charakterystycznych dla metod.
Odpowiedź "dwie metody." jest niepoprawna, bo metoda jest elementem wywoływalnym, zwykle zapisywanym z nawiasami (nawet pustymi) i często z blokiem instrukcji. Jeśli w kodzie nie ma dwóch takich deklaracji, nie można uznać, że zdefiniowano dwie metody.
Odpowiedź "jedną właściwość." jest błędna, ponieważ wymagałaby, aby w klasie była tylko jedna deklaracja właściwości/pola. W zadaniu chodzi o policzenie tych deklaracji w pokazanym kodzie.
Odpowiedź "dwa obiekty." jest błędna, ponieważ obiekt to instancja klasy tworzona w czasie działania programu (np. przez użycie konstruktora). Sama definicja klasy nie oznacza jeszcze utworzenia obiektów, chyba że w kodzie wyraźnie widać inicjalizacje instancji.
Wskazówka egzaminacyjna: gdy pytanie dotyczy "w przedstawionej klasie zdefiniowano…", najpierw oddziel deklaracje danych (właściwości/pola) od elementów wykonywalnych (metody), a dopiero potem policz ich liczbę.