gettery i settery w Java

Enkapsulacja to jedna z czterech podstawowych koncepcji programowania obiektowego (OOP). Pozwala na ukrycie szczegółów implementacji klasy i ograniczenie dostępu do nich tylko do metod tej klasy. W Javie enkapsulacja jest najczęściej realizowana przez użycie prywatnych pól klasy oraz publicznych metod dostępowych, znanych jako settery i gettery. Te metody umożliwiają bezpieczny dostęp i modyfikację prywatnych pól klasy z zewnątrz. Jako przykład, zobaczmy klasę Account, która reprezentuje konto bankowe z możliwością ustawienia i pobrania salda.

Przykład kodu: Klasa Account z enkapsulacją

// Definicja klasy Account
public class Account {
    // Prywatne pole klasy przechowujące saldo
    private double balance;

    // Konstruktor klasy Account
    public Account(double initialBalance) {
        if (initialBalance > 0) {
            this.balance = initialBalance;
        }
    }

    // Metoda do ustawiania (setter) salda
    public void setBalance(double balance) {
        if (balance > 0) {
            this.balance = balance;
        }
    }

    // Metoda do pobierania (getter) salda
    public double getBalance() {
        return balance;
    }

    // Metoda do dodawania środków na konto
    public void deposit(double amount) {
        if (amount > 0) {
            balance += amount;
        }
    }
}

// Klasa z metodą main do demonstracji użycia klasy Account
public class AccountTest {
    public static void main(String[] args) {
        // Utworzenie obiektu klasy Account
        Account myAccount = new Account(50.0);
        
        // Wyświetlenie początkowego salda
        System.out.println("Początkowe saldo: " + 
                           myAccount.getBalance());
        
        // Dodanie środków na konto
        myAccount.deposit(25.0);
        
        // Wyświetlenie zaktualizowanego salda
        System.out.println("Zaktualizowane saldo: " + 
                           myAccount.getBalance());
    }
}

Komentarze do kodu

  • Definicja klasy Account: Klasa reprezentuje konto bankowe z prywatnym polem balance, które przechowuje saldo konta.
  • Prywatne pole balance: Ogranicza dostęp do zmiennej saldo tylko do metod wewnętrznych klasy Account, zabezpieczając je przed nieautoryzowanym dostępem.
  • Konstruktor: Pozwala na inicjalizację konta z początkowym saldem, o ile przekazana wartość jest dodatnia.
  • Setter setBalance: Umożliwia bezpieczną zmianę salda, pod warunkiem, że nowa wartość jest dodatnia.
  • Getter getBalance: Umożliwia bezpieczne pobranie wartości salda.
  • Metoda deposit: Umożliwia dodanie środków do salda, jeśli przekazana kwota jest dodatnia.

Podsumowanie

Enkapsulacja za pomocą setterów i getterów w Javie to podstawowy mechanizm ochrony danych i logiki biznesowej klasy przed niepożądanym dostępem z zewnątrz. Umożliwia ona nie tylko bezpieczeństwo, ale także elastyczność w zarządzaniu stanem obiektów, ponieważ zmiany w implementacji klasy nie wpływają bezpośrednio na kod, który z tych klas korzysta. Przykład klasy Account pokazuje, jak można efektywnie zastosować enkapsulację do zarządzania stanem konta bankowego.

Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs Java od podstaw w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.

Scroll to Top