اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر (معدل)

من الممكن اجل لان الكلاس a يحمل فى خصائصه متغير من نوع الكلاس b

من الممكن انشاء كائن من الكلاس a وتعريف كائن من الكلاس b من خلاله ومن ثم استدعاء دواله كما فى المثال الاتي:

a=new A();
a.b=new B();
a.b.setNum(2);
System.out.println(a.b.getNum());

 ومن الممكن تعديل الكود ليصبح قابل للقراءة ومنظم بشكل اكثر كما فى الشكل التالي

a=new A();
a.b=new B();
B b=a.b;
b.setNum(2);
System.out.println(b.getNum());

ومن الممكن اضافة دوال الgetters و الsetters كما بالشكل الاتي ليصبح الكود منظم اكثر و تقم بعملية encapsulation لدوال الكلاس b بداخل الكلاس a

Public class  B{

int num;

public setNum(int n){

num=n;

}

public int getNum(){

return num;

}

}

Public class A{

 public B b;

 public A(B b){
 	this.b=b;
 }

public B getNum(){
	return this.b.getNum();
}
  
  public void setNum(int num){
  	this.b.setNum(num);
  }
}

وتقم باستدعائهم على النحو الاتي

B b =new B();
A a=new A(b);

a.setNum(2);
System.out.println(a.getNum());

 

وتلك مقالة بها فى اول جزأ شرح مبسط لمفهوم الencapsulation يمكنك أن تقرأه لتفهم أكثر 

 

تم التعديل في بواسطة شرف الدين2
اضافة رابط مقالة لربط الفهم
  • 0
نشر

نعم يمكنك فعل ذلك باستخدام الوراثة (extends) , لننشئ الكلاس B أولا

class B {
  int num;

  public void setNum(int n){

  this.num=n;

  }

  public int getNum(){

  return this.num;

  }
}

ثم لننشئ الكلاس A ونجعله يرث من الكلاس B كالتالي

public class A extends B {
  
  
}

الآن لننشئ دالة main بداخل الكلاس A وننشئ كائن من الكلاس A

public class A extends B {
  
  public static void main(String[] args) {

    A a = new A();

  }
}

لنحاول باستخدام الكائن a الوصول للخصائص الموجودة في الكلاي B , سوف نضع قيمة للمتغير num ثم نطبعها, فيكون شكل الكود كالتالي

public class A extends B {
  
  public static void main(String[] args) {

    A a = new A();

    a.setNum(1);

    System.out.println(a.getNum());
  }
}

سوف تكون النتيحة 

1

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...