الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كام سؤال مش فاهمهم(ststic methods and a progrm )!

بدأه NarutoMan في 20 أكتوبر 2010 · 7 رد · 456 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاتة

انا كان عندى كام سؤال على الماشى :

1 - انا مش فاهم امتى استخدم ال static methods

2 - انا مش عارف اية الغلط فى الكود دة مع انة فى نفس الكلاس


private double radius = 1.0;

/** Find the area of this circle */
double getArea() {
return radius * radius * Math.PI;
}

public static void main(String[] args) {
Circle myCircle = new Circle();
System.out.println("Radius is " + myCircle.radius);
}
}
public class Circle {

#2
 import java.math.*;
public class Circle {
  private double radius = 1.0;

  /** Find the area of this circle */
  double getArea() {
	return radius * radius * Math.PI;
  }

  public static void main(String[] args) {
	Circle myCircle = new Circle();
	System.out.println("Radius is " + myCircle.getArea());
  }
}

المفروض هكذا يكون . لم أجربه بعد

#3

حبيب قلبى ابو سامى

ايوه كدا laugh.gif

المهم اولا بالنسبه للكود فالكود تمام وشغال زى الفل :)

تستخدم الـ static method عندما تريد ان تعمل داله تسخدمها دائما مع الكلاس بدون استخدام كائن منها (object يعنى )على ما تتعود على المصطلحات دى :)

يعنى تعالا ناخد مثال

انا عاوز اعمل داله تعد لى كام اوبجكت اخدته من الكلاس دى

المفروض بعمل متغير static يعنى موحد او مشترك وليس ثابت ( لو مش عارف المعنى بقا راجع كورس العربى )

وبعدين كل ما تعمل اوبجكت جديد من الكلاس تزود المتغير دا واحد

وفاخر البرنامج عاوز تشوف انت اخدت كام اوبجكت

شوف المثال دا كدا

public class Student {

	static int count;

	public Student() {
    	count++;
	}

	public static int getCount() {
    	return count;
	}

	public static void main(String[] args) {
    	Student sm1 = new Student();
    	Student sm2 = new Student();
    	Student sm3 = new Student();
    	Student sm4 = new Student();

    	System.out.println(sm1.getCount());
    	System.out.println(sm2.getCount());
    	System.out.println(sm3.getCount());
    	System.out.println(sm4.getCount());

    	System.out.println(Student.getCount());
	}
}

كل ما هتعمل اوبجكت جديد من الكلاس هيزود الـ count بواحد

تعالى بقا نعمل

sm1 , sm2 , sm3 , sm4

وتعالى نطبع الداله اللى اسمها getCount على كل اوبجكت من دول

هتلاقى ان قيمه كل واحده منهم = 4

ليه بقا

لان المتغير count دا موحد للكلاس

وعلشان هو موحد للكلاس

يقبى ممكن تستخدم اسم الكلاس وتستدعى الداله اللى هى getCount بدون انك تعمل اى اوبجكت من الكلاس

اتمنى انك تكون فهمت :)

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 20 أكتوبر 2010 في 22:14

Software Developer
Mahmoudkelany.com


 

#4

الحمد لله فهمت شوية

تسمحولى اقولكم فى وسط الكلام كدة السلام عليكم

انا فهمت انى لو عمل static method مش لازم اعمل اوبجكت منها

طيب ماشى

بس فى الكود اللى انت كاتبة يا كيلانى



static int count;

public Student() {
count++;
}

public static int getCount() {
return count;
}

public static void main(String[] args) {
Student sm1 = new Student();
Student sm2 = new Student();
Student sm3 = new Student();
Student sm4 = new Student();

System.out.println(sm1.getCount());
System.out.println(sm2.getCount());
System.out.println(sm3.getCount());
System.out.println(sm4.getCount());

System.out.println(Student.getCount());
}
}
public class Student {

انا ممكن اعمل المتغير count static بس ال method عملتها static لية ؟؟

وشكرا ليك يا aohammed الكود اصلا صح انا كونت فاكر انة مش هينفع ينادى ال radius علشان هو private بس نفع طالما هما فى كلاس واحدة tongue.gif

تم تعديل هذه المشاركة بواسطة NarutoMan في 20 أكتوبر 2010 في 22:48

#5

علشان عندك من الحاجات بتاعت الـ static

ان الدوال الـ static تحتوى على متغيرات static فقط

يعنى لو كتبت مثلا

كدا

int x ; 
public static int getX(){
return x;
}

دا غلط

لازم يكون المتغير والداله بتاعته static

انما ممكن تعمل كدا

static int x ; 
public int getX(){
return x;
}

لان الدوال العاديه يمكن ان يكون بداخلها متغيرات عاديه ومتغيرات static

وكمان انا عاوز المتغير count

ودا static

يقبى لازم استدعيه من داله static وبالتالى اقدر استخدمها بدون ما اعمل object من الكلاس

:)

Software Developer
Mahmoudkelany.com


 

#6

يعنى انا عملت ال method static علشان معملش اوبجت منها بس دة السبب انما انا كنت ممكن اخليها method عادية

الحمد لله تمام اوى كدة حياكم الله بالخير يا جماعة وشكرا (كلانى و aohammed ).

1 −1
#7
اقتباس
يعنى انا عملت ال method static علشان معملش اوبجت منها بس دة السبب انما انا كنت ممكن اخليها method عادية

لا

00020309t.gif

1958_1963.gif
#8
اقتباس
لا

؟؟!!

مش فاهم حاجة

اية السبب انى عملت static method؟؟

مواضيع مشابهة