Java Kapsülleme

Bu eğitimde, örnekler yardımıyla Java'da kapsülleme ve veri gizleme hakkında bilgi edineceksiniz.

Java Kapsülleme

Kapsülleme, nesne yönelimli programlamanın temel özelliklerinden biridir. Kapsülleme, alanların ve yöntemlerin tek bir sınıf içinde gruplanmasını ifade eder.

Dış sınıfların bir sınıfın alanlarına ve yöntemlerine erişmesini ve değiştirmesini engeller. Bu ayrıca veri gizlemeye yardımcı olur .

Örnek 1: Java Encapsulation

 class Area ( // fields to calculate area int length; int breadth; // constructor to initialize values Area(int length, int breadth) ( this.length = length; this.breadth = breadth; ) // method to calculate area public void getArea() ( int area = length * breadth; System.out.println("Area: " + area); ) ) class Main ( public static void main(String() args) ( // create object of Area // pass value of length and breadth Area rectangle = new Area(5, 6); rectangle.getArea(); ) )

Çıktı

 Alan: 30

Yukarıdaki örnekte, Area adında bir sınıf oluşturduk. Bu sınıfın temel amacı alanı hesaplamaktır.

Uzunluk ve genişlik ve bir yöntem: bir alanı hesaplamak için, iki değişken gerekir: getArea(). Bu nedenle, bu alanları ve yöntemleri tek bir sınıfta topladık.

Burada alanlara ve yöntemlere diğer sınıflardan da erişilebilir. Dolayısıyla, bu veri saklama değildir .

Bu sadece kapsüllemedir . Sadece benzer kodları bir arada tutuyoruz.

Not : İnsanlar genellikle kapsüllemeyi veri gizleme olarak görür, ancak bu tamamen doğru değildir.

Kapsülleme, ilgili alanların ve yöntemlerin bir araya toplanması anlamına gelir. Bu, veri gizlemeyi sağlamak için kullanılabilir. Kapsülleme kendi başına veri saklama değildir.

Neden Kapsülleme?

  • Java'da kapsülleme, ilgili alanları ve yöntemleri bir arada tutmamıza yardımcı olur, bu da kodumuzu daha temiz ve okunması kolay hale getirir.
  • Veri alanlarımızın değerlerini kontrol etmeye yardımcı olur. Örneğin,
     class Person ( private int age; public void setAge(int age) ( if (age>= 0) ( this.age = age; ) ) )

    Burada yaş değişkenini yapıyoruz privateve setAge()yöntemin içine mantık uyguluyoruz . Şimdi, yaş negatif olamaz.
  • Alıcı ve ayarlayıcı yöntemleri , sınıf alanlarımıza salt okunur veya salt yazılır erişim sağlar. Örneğin,
     getName() // provides read-only access setName() // provides write-only access
  • Bir sistemin bileşenlerini ayırmaya yardımcı olur. Örneğin, kodu birden çok paket halinde kapsülleyebiliriz.
    Bu ayrıştırılmış bileşenler (paket), bağımsız olarak ve eşzamanlı olarak geliştirilebilir, test edilebilir ve hataları ayıklanabilir. Ve belirli bir bileşendeki herhangi bir değişikliğin diğer bileşenler üzerinde herhangi bir etkisi yoktur.
  • Kapsülleme kullanarak da veri gizlemeyi başarabiliriz. Yukarıdaki örnekte, uzunluk ve genişlik değişkenini özel olarak değiştirirsek, bu alanlara erişim kısıtlanır.
    Ve dış sınıflardan saklanırlar. Buna veri gizleme denir .

Veri Gizleme

Veri gizleme, uygulama ayrıntılarını gizleyerek veri üyelerimizin erişimini kısıtlamanın bir yoludur. Kapsülleme ayrıca veri gizleme için bir yol sağlar.

Veri gizlemeyi sağlamak için erişim değiştiricileri kullanabiliriz. Örneğin,

Örnek 2: Özel tanımlayıcı kullanılarak veri gizleme

 class Person ( // private field private int age; // getter method public int getAge() ( return age; ) // setter method public void setAge(int age) ( this.age = age; ) ) class Main ( public static void main(String() args) ( // create an object of Person Person p1 = new Person(); // change age using setter p1.setAge(24); // access age using getter System.out.println("My age is " + p1.getAge()); ) )

Çıktı

 Yaşım 24

Yukarıdaki örnekte, bir privatetarla yaşımız var. O olduğu için private, sınıf dışından erişilemez.

Yaşa erişmek için şu publicyöntemleri kullandık : getAge()ve setAge(). Bu yöntemlere alıcı ve ayarlayıcı yöntemler denir.

Yaşı özel kılmak, sınıf dışından yetkisiz erişimi kısıtlamamıza izin verdi. Bu veri gizlemedir .

Ana sınıftan yaş alanına ulaşmaya çalışırsak hata alırız.

 // error: age has private access in Person p1.age = 24;

Ilginç makaleler...