Przejdź do treści głównej
INF.04Pytanie #278 z 856klasy-obiekty-i-metody

Programista popełnił błąd w przedstawionym kodzie. Na czym ten błąd polega?

Opcje odpowiedzi:
A
brak konstruktora w definicji klasy
B
inicjacja obiektu jest nieprawidłowo zapisana
C
w inicjacji obiektu powinny być przekazane argumenty konstruktora
D
pole autor jest niedostępne z tego poziomu
Prawidłowa
Reklama

Wyjaśnienie i uzasadnienie dydaktyczne

Poprawna odpowiedź: D

Uzasadnienie i szersze wyjaśnienie:

W przedstawionym kodzie (najprawdopodobniej C#) pole autor w klasie Dokument zostało zadeklarowane z modyfikatorem dostępu protected. Oznacza to, że dostęp do tego pola jest możliwy tylko z wnętrza klasy Dokument oraz z klas, które po niej dziedziczą.

Kod w funkcji main próbuje odwołać się do pola doc.autor z zewnątrz klasy Dokument i nie jest to kod w klasie pochodnej. Taka operacja jest niedozwolona i spowoduje błąd kompilacji, ponieważ pole autor jest niedostępne z tego poziomu ze względu na swój poziom ochrony.

Dlaczego pozostałe odpowiedzi są nieprawidłowe?

  • A: Brak zdefiniowanego konstruktora nie jest błędem. W takiej sytuacji kompilator automatycznie generuje domyślny, publiczny konstruktor bezparametrowy, który jest poprawnie używany w linii new Dokument().
  • B: Inicjacja obiektu Dokument doc = new Dokument(); jest zapisana w pełni poprawnie.
  • C: Ponieważ używany jest domyślny konstruktor bezparametrowy, nie ma potrzeby (ani możliwości) przekazywania do niego argumentów.

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.

Rozwiąż w Quizie

Pojęcia z tego pytania

Cały słownik INF04
Reklama

Podobne pytania z działu „Klasy obiekty i metody”

Ten sam obszar materiału z kwalifikacji INF.04. W całej bazie znajdziesz 38 pytań z tego działu.