KWALIFIKACJA INF3 - CZERWIEC 2020

PYTANIE NR 33.
W przedstawionej klasie zdefiniowano
Ilustracja przedstawia fragment kodu w języku PHP, który definiuje klasę o nazwie 'a'.
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Właściwości to składowe klasy służące do przechowywania lub udostępniania stanu obiektu (zwykle rozpoznawalne po deklaracji atrybutu/pola albo konstrukcji z akcesorami dostępu, np. get/set). W pokazanej klasie występują dwie takie deklaracje, dlatego poprawna jest odpowiedź "dwie właściwości."

Pełne wyjaśnienie:

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ę.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Właściwość to składowa klasy służąca do udostępniania lub przechowywania stanu obiektu. Zwykle reprezentuje dane (np. nazwa, id), a nie działanie. W wielu językach ma postać pola albo konstrukcji z kontrolowanym odczytem/zapisem (np. get/set).
Właściwość (lub pole) opisuje stan, czyli "co obiekt ma". Metoda opisuje zachowanie, czyli "co obiekt robi". Metody są wywoływalne (często rozpoznasz je po nawiasach i parametrach), a właściwości zwykle nie są wywoływane jak funkcje.
Obiekty powstają dopiero w czasie działania programu jako instancje klasy. Sama definicja klasy opisuje tylko szablon (strukturę i zachowania). Aby mówić o obiektach, w kodzie muszą być widoczne miejsca tworzenia instancji, np. przez konstruktor lub operator tworzenia.
Metoda to element, który można wywołać. Najczęściej ma nazwę oraz nawiasy (z parametrami albo puste) i zawiera blok instrukcji. Jeśli w fragmencie kodu widzisz zapis typowy dla funkcji, to najpewniej metoda, a nie właściwość/pole.
Właściwość/pole zwykle wygląda jak deklaracja danych: typ + nazwa, czasem z wartością początkową. W językach z akcesorami dostępu możesz spotkać zapis z kontrolowanym odczytem i zapisem (np. sekcje odczytu/zapisu). Nie ma listy parametrów jak metoda.
Nie zawsze. W części języków "pole" to bezpośrednia zmienna w klasie, a "właściwość" to bezpieczniejszy interfejs dostępu (np. z walidacją). W praktyce egzaminacyjnej oba pojęcia bywają używane blisko siebie, ale warto znać różnicę w danym języku.
Konstruktor to specjalna metoda wywoływana podczas tworzenia obiektu. Służy do inicjalizacji stanu (np. ustawienia wartości początkowych). Mimo że ma szczególną rolę, nadal jest elementem wywoływalnym i zalicza się do metod w sensie składniowym.
Najczęstsze pomyłki to: branie metod za właściwości przez pobieżne czytanie kodu, pominięcie krótkiej deklaracji jednoliniowej oraz mylenie właściwości z obiektami (instancjami). Pomaga sprawdzenie, czy element ma nawiasy/parametry i czy reprezentuje dane.
Tak. Właściwość/pole może mieć typ złożony, np. inny obiekt, kolekcję lub strukturę danych. To nadal jest właściwość, bo opisuje stan klasy. To, że typem jest obiekt, nie oznacza automatycznie, że "zdefiniowano obiekty" w sensie instancji utworzonych w kodzie.
Ćwicz szybkie rozpoznawanie elementów klasy na krótkich przykładach: wypisz osobno właściwości/pola i metody, a potem policz. Powtarzaj typowe konstrukcje (deklaracje danych, metody z parametrami, konstruktor). To ułatwia odpowiedzi w zadaniach z kodem.
info

To pytanie poprawnie rozwiązuje 59% zdających egzamin. średnie

Eksperci podkreślają: "Właściwości to składowe klasy służące do przechowywania lub udostępniania stanu obiektu (zwykle rozpoznawalne po deklaracji atrybutu/pola albo konstrukcji z akcesorami dostępu, np. get/set)."

Źródła:

  • PHP Manual: Classes and Objects – Properties (dokumentacja), https://www.php.net/manual/en/language.oop5.properties.php - dostęp 2026-02-27
  • MDN Web Docs: JavaScript Classes (fields/methods – podstawowe rozróżnienie), https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes - dostęp 2026-02-27
  • Microsoft Learn: C# properties (get/set – definicja właściwości), https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/properties - dostęp 2026-02-27

Materiały:

  • Dokumentacja języka używanego na zajęciach (sekcja: klasy, pola/właściwości, metody)
  • Ćwiczenia: rozpoznawanie elementów klasy w krótkich fragmentach kodu
  • Notatki o OOP: różnice między klasą, obiektem, właściwością i metodą

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego