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

طريقة استدعاء دوال كلاس من خلال كلاس آخر في جافا

Hoida Ahamed

السؤال

Public class  B{

int num;

public setNum(int n){

num=n;

}

public int getNum(){

return num;

}

}

Public class A{

 public B b;

}

ممكن تعريف كائن من الكلاس A واستدعاء دوال Bمن خلاله🤔

اريد معرفة طريقة لجعل ذلك ممكن

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...