Modyfikator dostępu poprzedzający definicję metody Dodaj() zdefiniowanej w klasie Kalkulator powoduje, że:
Modyfikator dostępu poprzedzający definicję metody Dodaj() zdefiniowanej w klasie Kalkulator powoduje, że:
Wyjaśnienie i uzasadnienie dydaktyczne
Poprawna odpowiedź: D
Uzasadnienie i szersze wyjaśnienie:
Przedstawiony na obrazku modyfikator dostępu protected jest jednym z kluczowych elementów programowania obiektowego, służącym do hermetyzacji (ukrywania danych). Jego działanie polega na określeniu, z jakich miejsc w kodzie można uzyskać dostęp do danego składnika klasy (np. metody lub pola).
Zgodnie z definicją w językach takich jak Java czy C#, modyfikator protected oznacza, że dany element jest dostępny:
- Wewnątrz klasy, w której został zadeklarowany.
- Wewnątrz klas dziedziczących (pochodnych, podklas) po tej klasie, nawet jeśli znajdują się one w innych pakietach (Java) lub zestawach (C#).
- Dodatkowo, w języku Java, jest on również dostępny dla wszystkich innych klas znajdujących się w tym samym pakiecie.
Odpowiedź D jest najdokładniejszym opisem podstawowej i uniwersalnej funkcji modyfikatora protected w kontekście dziedziczenia.
Dlaczego pozostałe odpowiedzi są nieprawidłowe?
- A. Dostępność w całym programie, w tym na rzecz instancji klasy, zapewnia modyfikator
public. - B. Pojęcie „klas zaprzyjaźnionych” (
friend class) jest specyficzne dla języka C++ i nie występuje w tej formie w Javie czy C#. Modyfikatorprotectednie ma z nim bezpośredniego związku. - C. Jest to zaprzeczenie działania modyfikatora
protected. Modyfikatorem, który uniemożliwia dostęp z klas dziedziczących, jestprivate.
Chcesz poćwiczyć całą kwalifikację INF.04?
Egzamin próbny na czas, nauka działami, losowe pytanie albo przegląd całej bazy — wszystko w przeglądarce i bez zakładania konta.
Pojęcia z tego pytania
- Modyfikatory dostępu (Access Modifiers)Słowa kluczowe definiujące widoczność i zakres dostępności składowych klasy (pól, metod, właściwości).
- Dziedziczenie (Inheritance w OOP)Mechanizm programowania obiektowego pozwalający klasie pochodnej (podrzędnej) na przejęcie pól i metod z klasy bazowej (nadrzędnej) oraz ich rozszerzenie lub modyfikację.
- Język programowania JavaW pełni obiektowy język programowania kompilowany do kodu bajtowego (bytecode), wykonywanego przez Wirtualną Maszynę Javy (JVM) zgodnie z regułą WORA ('Napisz raz, uruchamiaj wszędzie').
Podobne pytania z działu „Enkapsulacja i modyfikatory dostepu”
Ten sam obszar materiału z kwalifikacji INF.04. W całej bazie znajdziesz 8 pytań z tego działu.
- #99
W metodach klasy GoldCustomer są widoczne jedynie pola
- #139
Założenie programowania obiektowego polegające na ukrywaniu składowych klasy tak, aby były one dostępne tylko metodom tej klasy lub funkcjom zaprzyjaźnionym, to
- #212
Jaki kwalifikator należy nadać metodzie, aby dostęp do niej był możliwy tylko z ciała tej klasy i klas potomnych, a jednocześnie, żeby ta metoda nie była dostępna w dowolnej funkcji?
- #295
Które zdanie jest zgodne z informacjami o funkcjach zaprzyjaźnionych przedstawionych we fragmencie dokumentacji?
- #538
W klasie zdefiniowano pole, do którego dalej w programie odwoływano się za pomocą nazwy klasy, bez tworzenia obiektu. Oznacza to, że pole musiało być zdefiniowane ze słowem kluczowym