Egzamin zawodowyPortal części pisemnej

INF.04 · pytanie 608

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);

  1. AArgumenty konstruktora powinny być przekazane podczas inicjalizacji obiektu.
  2. BBrak konstruktora w definicji klasy.
  3. CInicjalizacja obiektu została błędnie zapisana.
  4. DPole autor jest niedostępne z tego poziomu.Poprawna

Wyjaśnienie

Błąd związany z polem 'autor' wynika z problemu dostępu do pól prywatnych w klasie. W programowaniu obiektowym, pola prywatne (oznaczone jako private) są dostępne tylko wewnątrz danej klasy i nie mogą być bezpośrednio modyfikowane lub odczytywane z zewnątrz. Aby umożliwić dostęp do takich pól, programista powinien utworzyć odpowiednie metody dostępowe – tzw. gettery i settery. Jest to przykład hermetyzacji (encapsulation), jednego z filarów programowania obiektowego, który pozwala na kontrolę nad tym, jak dane są przechowywane i modyfikowane. Hermetyzacja zwiększa bezpieczeństwo aplikacji i zapobiega przypadkowym zmianom wartości pól obiektu.