אנקפסולציה בג'אווה הוא תהליך של גלישת קוד ונתונים יחד ליחידה אחת למשל, כמוסה המעורבת מכמה תרופות.
איך להשיג משחק יונה באנדרואיד
אנו יכולים ליצור מחלקה מובלעת במלואה בג'אווה על ידי הפיכת כל חברי המחלקה לפרטיים. כעת אנו יכולים להשתמש בשיטות מגדיר וגטר כדי להגדיר ולקבל את הנתונים בו.
ה 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