Java'da Kapsülleme nedir?
Java'da kapsülleme, değişkenleri (verileri) ve yöntemleri (kodu) tek bir birim olarak bir araya getiren bir mekanizmadır. Bilgi detaylarının gizlenmesi ve verilerin ve nesnenin davranışının korunması işlemidir. Dört önemli OOP kavramından biridir. Kapsülleme sınıfının test edilmesi kolaydır, bu nedenle birim testi için de daha iyidir.
Bu eğitimde öğreneceksiniz-
- Java'da Kapsülleme nedir?
- Bir Örnekle Kapsüllemeyi Öğrenin
- Java'da Veri Gizleme
- Java'da Getter ve Setter Yöntemleri
- Soyutlama ve Kapsülleme
- Java'da Kapsüllemenin Avantajları
Videoya erişilemiyorsa burayı tıklayın
Bir Örnekle Kapsüllemeyi Öğrenin
Kapsüllemenin ne olduğunu ayrıntılı olarak anlamak için aşağıdaki banka hesabı sınıfını mevduat ile düşünün ve bakiye yöntemlerini gösterin
class Account {private int account_number;private int account_balance;public void show Data() {//code to show data}public void deposit(int a) {if (a < 0) {//show error} elseaccount_balance = account_balance + a;}}
Bir bilgisayar korsanının banka hesabınızın koduna erişmeyi başardığını varsayalım. Şimdi, hesabınıza iki yolla -100 tutarında para yatırmaya çalışıyor. İlk yöntemini veya yaklaşımını görelim.
Yaklaşım 1: Kodu değiştirerek banka hesabınıza geçersiz bir miktar (-100 diyelim) yatırmaya çalışır.
Şimdi, soru şu - Bu mümkün mü? Araştıralım.
Genellikle, bir sınıftaki bir değişken aşağıda gösterildiği gibi "özel" olarak ayarlanır. Yalnızca sınıfta tanımlanan yöntemler ile erişilebilir. Başka hiçbir sınıf veya nesne bunlara erişemez.
Bir veri üyesi özelse, bu yalnızca aynı sınıf içinden erişilebileceği anlamına gelir. Hiçbir dış sınıf, özel veri üyesine veya başka bir sınıfın değişkenine erişemez.
Yani bizim durumumuzda bilgisayar korsanı hesabınıza -100 tutarında para yatıramaz.
Yaklaşım 2 : Hacker'ın ilk yaklaşımı miktarı yatırmada başarısız oldu. Ardından, "para yatırma" yöntemini kullanarak -100 tutarında bir para yatırmaya çalışır.
Ancak yöntem uygulamasının negatif değerler için bir kontrolü vardır. Yani ikinci yaklaşım da başarısız oluyor.
Bu nedenle, verilerinizi asla harici bir tarafa ifşa etmezsiniz. Bu da uygulamanızı güvenli kılar.
Kodun tamamı bir kapsül olarak düşünülebilir ve yalnızca mesajlar aracılığıyla iletişim kurabilirsiniz. Dolayısıyla adı kapsülleme.
Java'da Veri Gizleme
Java'da Veri Gizleme , bir sınıfın değişkenlerini diğer sınıflardan gizler. Sadece mevcut sınıflarının metoduyla erişilebilir. Uygulama detaylarını kullanıcılardan gizler. Ancak veri gizlemenin ötesinde, ilgili verilerin daha iyi yönetimi veya gruplandırılması anlamına gelir.
Java'da daha düşük düzeyde bir kapsülleme elde etmek için, "korumalı" veya "genel" gibi değiştiriciler kullanabilirsiniz. Kapsülleme ile geliştiriciler, kodun bir bölümünü diğerini etkilemeden kolayca değiştirebilir.
Java'da Alıcı ve Ayarlayıcı
Java'daki Getter ve Setter , bir değişkenin değerlerini almak ve güncellemek için kullanılan iki geleneksel yöntemdir. Esas olarak değişken değerleri oluşturmak, değiştirmek, silmek ve görüntülemek için kullanılırlar. Ayarlayıcı yöntemi değerleri güncellemek için kullanılır ve alıcı yöntemi değerleri okumak veya almak için kullanılır. Ayrıca erişimci ve mutatör olarak da bilinirler.
Aşağıdaki kod, alıcı ve ayarlayıcı yöntemlerinin bir örneğidir:
class Account{private int account_number;private int account_balance;// getter methodpublic int getBalance() {return this.account_balance;}// setter methodpublic void setNumber(int num) {this.account_number = num;}}
Yukarıdaki örnekte, getBalance () yöntemi, account_balance değişkeninin değerini okuyan getter yöntemidir ve setNumber () yöntemi, account_number değişkeni için değeri ayarlayan veya güncelleyen ayarlayıcı yöntemidir.
Soyutlama ve Kapsülleme
Genellikle kapsülleme, Soyutlama ile yanlış anlaşılır. Hadi çalışalım-
- Kapsülleme, daha çok bir işlevsellik elde etmek için "Nasıl" ile ilgilidir
- Soyutlama daha çok bir sınıfın "neler yapabileceği" ile ilgilidir.
Bu farkı anlamak için basit bir örnek bir cep telefonudur. Devre kartındaki karmaşık mantığın bir dokunmatik ekranda kapsüllendiği ve arayüzün bunu soyutlaması için sağlandığı yer.
Java'da Kapsüllemenin Avantajları
- Kapsülleme, verileri ilgili işlevleriyle birleştirir. Burada işlevsellikler "yöntemler" ve veriler "değişkenler" anlamına gelir.
- Bu yüzden değişkenleri ve yöntemleri tek bir yerde tutuyoruz. Orası "sınıf". Sınıf, kapsüllemenin temelidir.
- Java Encapsulation ile, kodunuzdaki kritik veri üyelerine gizleyebilirsiniz (erişimi kısıtlayabilirsiniz), bu da güvenliği artırır
- Daha önce tartıştığımız gibi, eğer bir veri üyesi "özel" olarak tanımlanmışsa, o zaman sadece aynı sınıf içinde erişilebilir. Hiçbir dış sınıf, diğer sınıfın veri üyesine (değişkenine) erişemez.
- Ancak, bu değişkenlere erişmeniz gerekiyorsa, genel "alıcı" ve "ayarlayıcı" yöntemlerini kullanmanız gerekir.