logo

אנקפסולציה בג'אווה

אנקפסולציה בג'אווה הוא תהליך של גלישת קוד ונתונים יחד ליחידה אחת למשל, כמוסה המעורבת מכמה תרופות.

איך להשיג משחק יונה באנדרואיד
אנקפסולציה ב-java

אנו יכולים ליצור מחלקה מובלעת במלואה בג'אווה על ידי הפיכת כל חברי המחלקה לפרטיים. כעת אנו יכולים להשתמש בשיטות מגדיר וגטר כדי להגדיר ולקבל את הנתונים בו.

ה Java Bean class הוא הדוגמה של מחלקה מובלעת במלואה.

היתרון של Encapsulation ב-Java

על ידי מתן רק שיטת מגדיר או גטר, אתה יכול להפוך את המחלקה לקריאה בלבד או לכתיבה בלבד . במילים אחרות, אתה יכול לדלג על שיטות getter או seter.

זה מספק לך את שליטה על הנתונים . נניח שאתה רוצה להגדיר את הערך של id שאמור להיות גדול מ-100 בלבד, אתה יכול לכתוב את ההיגיון בתוך שיטת ה-seter. אתה יכול לכתוב את ההיגיון לא לאחסן את המספרים השליליים בשיטות הקובע.

זו דרך להשיג הסתרת נתונים ב-Java כי מחלקה אחרת לא תוכל לגשת לנתונים דרך חברי הנתונים הפרטיים.

מחלקת ה-encapsulate היא קל לבדיקה . אז עדיף לבדיקת יחידות.

ערימות java

ה-IDE הסטנדרטיים מספקים את המתקן ליצור את ה-Getters ו-seters. ככה זה קל ומהיר ליצור מחלקה מובלעת ב-Java.

דוגמה פשוטה של ​​Encapsulation ב-Java

בואו נראה את הדוגמה הפשוטה של ​​אנקפסולציה שיש לה רק שדה אחד עם שיטות הסטטר והגטר שלו.

קובץ: Student.java

תכונות של 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 } } 

קובץ: 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 

תְפוּקָה:

 vijay 

שיעור לקריאה בלבד

 //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; } } 

כעת, אינך יכול לשנות את הערך של חבר הנתונים במכללה שהוא 'AKG'.

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

שיעור לכתיבה בלבד

 //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; } } 

עכשיו, אתה לא יכול לקבל את הערך של המכללה, אתה יכול רק לשנות את הערך של חבר נתונים במכללה.

 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 

דוגמה נוספת של Encapsulation ב-Java

בואו נראה דוגמה נוספת של אנקפסולציה שיש לה רק ארבעה שדות עם שיטות ה-seter וה-getter שלה.

קובץ: Account.java

ערך java של enum
 //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; } } 

קובץ: 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()); } } 
בדוק את זה עכשיו

תְפוּקָה:

 7560504000 Sonoo Jaiswal [email protected] 500000.0