logo

Java'da kapsülleme

Java'da kapsülleme bir kod ve verileri tek bir birime sarma işlemi örneğin çeşitli ilaçların karıştırıldığı bir kapsül.

Java'da kapsülleme

Sınıfın tüm veri üyelerini özel yaparak Java'da tamamen kapsüllenmiş bir sınıf oluşturabiliriz. Artık içindeki verileri ayarlamak ve almak için setter ve getter yöntemlerini kullanabiliriz.

Java Fasulyesi class tamamen kapsüllenmiş bir sınıfın örneğidir.

Java'da Kapsüllemenin Avantajı

Yalnızca bir ayarlayıcı veya alıcı yöntemi sağlayarak sınıfı salt okunur veya salt yazılır . Başka bir deyişle alıcı ve ayarlayıcı yöntemlerini atlayabilirsiniz.

Java'da harita

Size şunları sağlar: veriler üzerinde kontrol . Diyelim ki id değerini sadece 100'den büyük olacak şekilde ayarlamak istiyorsunuz, bunun mantığını setter metodunun içine yazabilirsiniz. Setter metodlarında negatif sayıları saklamama mantığını yazabilirsiniz.

Bu, başarmanın bir yoludur veri gizleme Java'da çünkü diğer sınıf verilere özel veri üyeleri aracılığıyla erişemeyecektir.

Kapsülleme sınıfı test edilmesi kolay . Bu nedenle birim testi için daha iyidir.

Standart IDE'ler alıcıları ve ayarlayıcıları oluşturma olanağını sağlıyor. İşte bu kapsüllenmiş bir sınıf oluşturmak kolay ve hızlı Java'da.

Java'da Basit Kapsülleme Örneği

Ayarlayıcı ve alıcı yöntemleriyle tek bir alanı olan basit kapsülleme örneğini görelim.

Dosya: Öğrenci.java

mysql tüm kullanıcıları listele
 //A Java class which is a fully encapsulated class. //It has a private data member and getter and setter methods. package com.javatpoint; public class Student{ //private data member private String name; //getter method for name public String getName(){ return name; } //setter method for name public void setName(String name){ this.name=name } } 

Dosya: Test.java

 //A Java class to test the encapsulated class. package com.javatpoint; class Test{ public static void main(String[] args){ //creating instance of the encapsulated class Student s=new Student(); //setting value in the name member s.setName('vijay'); //getting value of the name member System.out.println(s.getName()); } } 
 Compile By: javac -d . Test.java Run By: java com.javatpoint.Test 

Çıktı:

 vijay 

Salt Okunur sınıf

 //A Java class which has only getter methods. public class Student{ //private data member private String college='AKG'; //getter method for college public String getCollege(){ return college; } } 

Artık kolej veri üyesinin 'AKG' değerini değiştiremezsiniz.

 s.setCollege('KITE');//will render compile time error 

Salt Yazılabilir sınıf

 //A Java class which has only setter methods. public class Student{ //private data member private String college; //getter method for college public void setCollege(String college){ this.college=college; } } 

Artık kolejin değerini alamazsınız, yalnızca kolej veri üyesinin değerini değiştirebilirsiniz.

C dilinde matris programı
 System.out.println(s.getCollege());//Compile Time Error, because there is no such method System.out.println(s.college);//Compile Time Error, because the college data member is private. //So, it can't be accessed from outside the class 

Java'da Başka Bir Kapsülleme Örneği

Ayarlayıcı ve alıcı yöntemleriyle yalnızca dört alanı olan başka bir kapsülleme örneğini görelim.

Dosya: Account.java

 //A Account class which is a fully encapsulated class. //It has a private data member and getter and setter methods. class Account { //private data members private long acc_no; private String name,email; private float amount; //public getter and setter methods public long getAcc_no() { return acc_no; } public void setAcc_no(long acc_no) { this.acc_no = acc_no; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public float getAmount() { return amount; } public void setAmount(float amount) { this.amount = amount; } } 

Dosya: TestAccount.java

 //A Java class to test the encapsulated class Account. public class TestEncapsulation { public static void main(String[] args) { //creating instance of Account class Account acc=new Account(); //setting values through setter methods acc.setAcc_no(7560504000L); acc.setName('Sonoo Jaiswal'); acc.setEmail('[email protected]'); acc.setAmount(500000f); //getting values through getter methods System.out.println(acc.getAcc_no()+' '+acc.getName()+' '+acc.getEmail()+' '+acc.getAmount()); } } 
Şimdi Test Edin

Çıktı:

 7560504000 Sonoo Jaiswal [email protected] 500000.0