ID: 3002 OOP - Zaawansowane Łatwe

Źródło: Arkusze CKE

Jakie jest źródło błędu w podanym kodzie przez programistę?

class Dokument {
public string nazwa;
protected string autor;
}
// .... w kodzie funkcji main
Dokument doc = new Dokument();
Console.WriteLine(doc.autor);

Warianty odpowiedzi

  1. A

    Inicjalizacja obiektu została błędnie zapisana.

  2. B

    Brak konstruktora w definicji klasy.

  3. C

    Pole autor jest niedostępne z tego poziomu.

  4. D

    Argumenty konstruktora powinny być przekazane podczas inicjalizacji obiektu.

Wyjaśnienie

Modyfikator dostępu protected działa jak zamknięte drzwi do pokoju, do którego klucz mają tylko członkowie rodziny.

Pole oznaczone jako protected jest widoczne wewnątrz klasy, w której zostało zdefiniowane, oraz w klasach, które po niej dziedziczą.

Nie masz jednak do niego dostępu bezpośrednio z zewnątrz, na przykład z poziomu funkcji main. Kompilator od razu zgłosi błąd braku uprawnień.

Sprawdź się w praktyce

Rozwiąż pełny test próbny INF.04 albo wylosuj pojedyncze pytanie na szybką powtórkę.

Podobne pytania — OOP - Zaawansowane