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);
- AArgumenty konstruktora powinny być przekazane podczas inicjalizacji obiektu.
- BBrak konstruktora w definicji klasy.
- CInicjalizacja obiektu została błędnie zapisana.
- 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.