1. Wprowadzenie do C#
  2. Szybki start
  3. Pierwszy program
  4. Komentarze
  5. Typy danych
  6. Zmienne
  7. Pola
  8. Właściwości
  9. Stałe
  10. Metody
  11. Instrukcje warunkowe
  12. Pętle
  13. Tablice
  14. Kolekcje
  15. Klasy
  16. Dziedziczenie
  17. Polimorfizm
  18. Konwersja typów
  19. Właściwości klasy String
  20. Typy wyliczeniowe
  21. Interfejsy
  22. Klasy statyczne
  23. Klasy Abstrakcyjne
  24. Przestrzenie nazw
  25. Wyjątki
  26. Typy generyczne
  27. JSON
  28. XML
  29. Podsumowanie

Hermetyzacja klas

Hermetyzacja klas jest jednym z podstawowych mechanizmów programowania obiektowego i polega na tym, że klasa zawiera jedynie publiczne metody i właściwości, które udostępniają interfejs dla innych elementów programu, podczas gdy szczegóły implementacji pozostają ukryte. Dzięki temu inne elementy programu nie mają bezpośredniego dostępu do wewnętrznych składowych klasy, co ogranicza możliwość błędów i ułatwia utrzymanie kodu.

W języku C# hermetyzację można osiągnąć za pomocą modyfikatorów dostępu, takich jak private protected public

								
class MojaKlasa
{
    private int myPrivateField;
    protected int myProtectedField;
    public int myPublicField;

    private void MyPrivateMethod() // Moja prywatna Metoda
    {
        // ...
    }

    protected void MyProtectedMethod() // Moja chroniona Metoda
    {
        // ...
    }

    public void MyPublicMethod() // Moja publiczna Metoda
    {
        // ...
    }
}
								
						
Wyjaśnienie

W powyższym przykładzie, myPrivateField jest prywatnym polem klasy i dostępny tylko dla tej samej klasy, myProtectedField jest chronionym polem i dostępne tylko dla tej samej klasy i klas pochodnych, myPublicField jest publicznym polem i dostępny dla wszystkich elementów programu.

Notatka

Dzięki hermetyzacji klas, możemy zabezpieczyć składowe klasy przed nieprawidłowym dostępem lub modyfikacją oraz utrzymać integralność danych. Ograniczenie dostępu do prywatnych składowych oznacza, że tylko metody wewnątrz klasy mogą je odczytywać lub zmieniać, co zwiększa kontrolę nad danymi i pozwala na uniknięcie niezamierzonych błędów.

								
class KontoBankowe
{
    private decimal saldo;

    public decimal zobaczSaldo()
    {
        return saldo;
    }

    public void Wplac(decimal kwota)
    {
        saldo += kwota;
    }

    public void Wyplac(decimal kwota)
    {
        saldo -= kwota;
    }
}
								
						
Wyjaśnienie

W powyższym przykładzie, klasa BankAccount posiada prywatne pole balance, które przechowuje stan konta. Klasa udostępnia publiczne metody GetBalance, Deposit i Withdraw, które pozwalają na odczytanie stanu konta, dokonanie wpłaty lub wypłaty środków. Dzięki hermetyzacji, pole balance jest chronione przed bezpośrednim dostępem z zewnątrz, co zwiększa bezpieczeństwo danych i pozwala na uniknięcie niezamierzonych błędów.