Java Eğitimleri

Java ANA SAYFA Java'ya Giriş Java Başlarken Java Sözdizimi Java Yorumları Java Değişkenleri Java Veri Türleri Java Tipi Döküm Java Operatörleri Java Dizeleri Java Matematiği Java Booleanları Java Eğer... Başka Java Anahtarı Java while Döngüsü Döngü için Java Java Ara/Devam Java Dizileri

Java Yöntemleri

Java Yöntemleri Java Yöntemi Parametreleri Java Yöntemi Aşırı Yüklemesi Java Kapsamı Java Özyineleme

Java Sınıfları

Java OOP'si Java Sınıfları/Nesneleri Java Sınıfı Nitelikleri Java Sınıfı Yöntemleri Java Oluşturucuları Java Değiştiriciler Java Kapsülleme Java Paketleri / API Java Kalıtımı Java Polimorfizmi Java İç Sınıfları Java Soyutlama Java Arayüzü Java Numaraları Java Kullanıcı Girişi Java Tarihi Java Dizi Listesi Java Bağlantılı Listesi Java Hash Haritası Java HashSeti Java Yineleyici Java Sarıcı Sınıfları Java İstisnaları Java Normal İfadesi Java Konuları Java Lambda

Java Dosya İşleme

Java Dosyaları Java Dosyaları Oluşturma/Yazma Java Okuma Dosyaları Java Dosyaları Sil

Java Nasıl Yapılır

İki Sayı Ekle

Java Referansı

Java Anahtar Kelimeleri Java Dize Yöntemleri Java Matematik Yöntemleri

Java Örnekleri

Java Örnekleri Java Derleyici Java Alıştırmaları Java Testi Java Sertifikası


Java Kapsülleme


kapsülleme

Kapsüllemenin anlamı, "hassas" verilerin kullanıcılardan gizlendiğinden emin olmaktır. Bunu başarmak için şunları yapmalısınız:

  • sınıf değişkenlerini/özniteliklerini şu şekilde bildirprivate
  • bir değişkenin değerine erişmek ve güncellemek için genel alma ve ayarlama yöntemleri sağlayınprivate

Al ve Ayarla

Önceki bölümden, privatedeğişkenlere yalnızca aynı sınıf içinde erişilebileceğini öğrendiniz (dış bir sınıfın buna erişimi yoktur). Ancak public get ve set yöntemlerini sağlarsak bunlara ulaşmak mümkündür .

Yöntem get, değişken değerini döndürür ve setyöntem değeri ayarlar.

Her ikisinin de sözdizimi, ya getveya ile başlamaları set, ardından değişkenin adının ilk harfi büyük olacak şekilde olmalarıdır:

Örnek

public class Person {
  private String name; // private = restricted access

  // Getter
  public String getName() {
    return name;
  }

  // Setter
  public void setName(String newName) {
    this.name = newName;
  }
}

Örnek açıklama

Yöntem get, değişkenin değerini döndürür name.

Yöntem setbir parametre ( newName) alır ve onu namedeğişkene atar. Anahtar thiskelime, geçerli nesneye atıfta bulunmak için kullanılır.

Ancak namedeğişken olarak bildirildiğinden private, bu sınıfın dışından ona erişemiyoruz :

Örnek

public class Main {
  public static void main(String[] args) {
    Person myObj = new Person();
    myObj.name = "John";  // error
    System.out.println(myObj.name); // error 
  }
}

Değişken olarak bildirilmiş publicolsaydı, aşağıdaki çıktıyı beklerdik:

John

Ancak, bir değişkene erişmeye çalıştığımızda privatebir hata alıyoruz:

MyClass.java:4: error: name has private access in Person
    myObj.name = "John";
         ^
MyClass.java:5: error: name has private access in Person
    System.out.println(myObj.name);
                  ^
2 errors

Bunun yerine, değişkene erişmek ve güncellemek için getName()ve yöntemlerini kullanırız:setName()

Örnek

public class Main {
  public static void main(String[] args) {
    Person myObj = new Person();
    myObj.setName("John"); // Set the value of the name variable to "John"
    System.out.println(myObj.getName());
  }
}

// Outputs "John"


Neden Kapsülleme?

  • Sınıf niteliklerinin ve yöntemlerinin daha iyi kontrolü
  • Sınıf öznitelikleri salt okunur (yalnızca getyöntemi kullanıyorsanız) veya salt okunur (yalnızca setyöntemi kullanıyorsanız) yapılabilir.
  • Esnek: programcı kodun bir bölümünü diğer bölümleri etkilemeden değiştirebilir
  • Artan veri güvenliği