logo

التغليف في جافا

التغليف في جافا هو عملية تجميع التعليمات البرمجية والبيانات معًا في وحدة واحدة على سبيل المثال، كبسولة ممزوجة بعدة أدوية.

التغليف في جافا

يمكننا إنشاء فئة مغلفة بالكامل في Java عن طريق جعل جميع بيانات أعضاء الفئة خاصة. يمكننا الآن استخدام أساليب setter و getter لتعيين البيانات الموجودة فيها والحصول عليها.

ال جافا فول class هو مثال لفئة مغلفة بالكامل.

الاستفادة من التغليف في جافا

من خلال توفير طريقة setter أو getter فقط، يمكنك إنشاء الفصل للقراءة فقط أو الكتابة فقط . بمعنى آخر، يمكنك تخطي أساليب getter أو setter.

com.sdlc

يوفر لك السيطرة على البيانات . لنفترض أنك تريد تعيين قيمة المعرف الذي يجب أن يكون أكبر من 100 فقط، يمكنك كتابة المنطق داخل طريقة الضبط. يمكنك كتابة المنطق بعدم تخزين الأرقام السالبة في طرق الضبط.

إنها وسيلة لتحقيق إخفاء البيانات في Java لأن الفصل الآخر لن يتمكن من الوصول إلى البيانات من خلال أعضاء البيانات الخاصة.

الطبقة المغلفة هي من السهل اختبارها . لذلك، فمن الأفضل لاختبار الوحدة.

توفر بيئة التطوير المتكاملة (IDE) القياسية إمكانية إنشاء الحروف والمحددات. اذا هي كذلك سهل وسريع لإنشاء فئة مغلفة في جافا.

مثال بسيط للتغليف في جافا

دعونا نرى المثال البسيط للتغليف الذي يحتوي على حقل واحد فقط مع طريقتي الضبط و getter.

الملف: 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 } } 

الملف: 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 

مثال آخر للتغليف في جافا

دعونا نرى مثالاً آخر للتغليف الذي يحتوي على أربعة حقول فقط مع طريقتي الضبط و getter.

الملف: 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; } } 

الملف: 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