Beágyazás Java nyelven egy a kód és az adatok egyetlen egységbe tömörítésének folyamata például egy kapszula, amely több gyógyszerből van összekeverve.
Létrehozhatunk egy teljesen beágyazott osztályt Java nyelven, ha az osztály összes adattagját priváttá tesszük. Most már használhatunk setter és getter metódusokat a benne lévő adatok beállítására és lekérésére.
A Java Bean osztály a teljesen beágyazott osztály példája.
A Java beágyazás előnyei
Csak setter vagy getter metódus megadásával létrehozhatja az osztályt csak olvasható vagy csak írható . Más szóval, kihagyhatja a getter vagy setter metódust.
Ez biztosítja Önnek a kontrollálni az adatokat . Tegyük fel, hogy be szeretné állítani az id értékét, amely csak 100-nál nagyobb lehet, a logikát a setter metódusba írhatja. Megírhatja azt a logikát, hogy ne tárolja a negatív számokat a setter metódusokban.
Ez egy módja annak, hogy elérjük adatok elrejtése Java-ban, mert más osztályok nem fognak tudni hozzáférni az adatokhoz a privát adattagokon keresztül.
A beágyazott osztály az könnyen tesztelhető . Tehát egységteszthez jobb.
string formázás java
A szabványos IDE-k biztosítják a getterek és setterek létrehozásának lehetőségét. Szóval, az egyszerű és gyors egy beágyazott osztály létrehozása Java nyelven.
Egyszerű példa a beágyazásra Java nyelven
Lássuk a beágyazás egyszerű példáját, amelynek csak egy mezője van a setter és getter metódusaival.
Fájl: Student.java
//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 } }
Fájl: 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
Kimenet:
vijay
Csak olvasható osztály
//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; } }
Most már nem módosíthatja a főiskolai adattag értékét, amely 'AKG'.
s.setCollege('KITE');//will render compile time error
Csak írásra alkalmas osztály
//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; } }
Most a kollégium értékét nem kaphatja meg, csak a főiskolai adattag értékét módosíthatja.
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
Egy másik példa a beágyazásra Java nyelven
Nézzünk egy másik példát a beágyazásra, amely csak négy mezőt tartalmaz setter és getter metódusaival.
Fájl: 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; } }
Fájl: 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()); } }Tesztelje most
Kimenet:
7560504000 Sonoo Jaiswal [email protected] 500000.0