السلام عليكم و رحمة الله و بركاته
اخواني اريد ان انشئ مصفوفة من class معين
مثلا انا عندي
class Node{
char code;
float gpa;
float mark;
}
كيف اعرف مصفوفة من هذا class
و لكم خالص الشكر و التحية
السلام عليكم و رحمة الله و بركاته
اخواني اريد ان انشئ مصفوفة من class معين
مثلا انا عندي
class Node{
char code;
float gpa;
float mark;
}
كيف اعرف مصفوفة من هذا class
و لكم خالص الشكر و التحية
حياك الله اخي محمود .. انا ايضاً عندي سؤال هنا ...
بحسب المثال اللي وضعته ... سوف ننشيء مصفوفة n من عشرة عناصر ... و الجملة new هي من اجل انشاء الوبجكتس في الذاكرة .. و لإستدعاء دالة البناء من اجل اعطاء قيم ابتدائية لمتغيرات الكلاس ..
سؤالي هو : كيف اعطي قيم ابتدائية لدالة البناء (او دوال البناء الخاصة بكل اوبجكت ) ، بمعنى ارسال باراميتر لها ... في حين اننا نخصص الاقواس التي في الاخير لتحديد طول المصفوفة ... انا اعرف انه من غير المنطقي ان ننشيء مصفوفة عناصر تتساوى فيها القيم الابتدائية لكل العناصر .. اي قد يكون السؤال غير منطقي .. لكن خطر على بالي ... ؟
بنت اليمن ،،
تم تعديل هذه المشاركة بواسطة بنت اليمن في 4 يوليو 2006 في 13:51
لا اله الا الله .. محمد رسول الله
(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)
يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين
مع انني مش فاهم السؤال بالكامل ولكن اتمنى انه هذا المثال هو جواب لما تريدينه مثلا عندنا Object Point ولها صفتين مثلا xCoordinate,yCoordinate
وبدي احسب مجموع الاحداثيات كل احداثي لوحده
public class Point {
private double xCoordinate;
private double yCoordinate;
// Constructor
public Point() {
}
public void setXCoordinate(double coordinate) {
xCoordinate = coordinate;
}
public void setYCoordinate(double coordinate) {
yCoordinate = coordinate;
}
public double getXCoordinate() {
return xCoordinate;
}
public double getYCoordinate() {
return yCoordinate;
}
}public class PointTest {
public static void main(String[] args) {
Point[] p = new Point[2];
Point tmp = new Point();
tmp.setXCoordinate(3);
tmp.setYCoordinate(4);
Point tmp2 = new Point();
tmp2.setXCoordinate(5);
tmp2.setYCoordinate(6);
p[0] = tmp;
p[1] = tmp2;
/*
* OR
* Point p = {new Point(3,4),new Point(5,6)};
* But
* the Constructor in Point must be changed to
* public Point(double coordinate, double coordinate2) {
* xCoordinate = coordinate;
* yCoordinate = coordinate2;
* }
*
*/
double sumXCoordinate = 0.0;
double sumYCoordinate = 0.0;
for (int i = 0; i < p.length; i++) {
sumXCoordinate += p.getXCoordinate();
sumYCoordinate += p.getYCoordinate();
}
System.out.println("SumXCoordiante :" + sumXCoordinate);
System.out.println("SumYCoordiante :" + sumYCoordinate);
}
}لست متواجد بشكل يومي
بالضبط اخي مجدي هذا ما ابحث عنه .. يعني اننا في هذه الحالة سوف نعتمد على ادخال القيم الابتدائية على اوبجت اوبجت في المصفوفة او عن طريق الادخال الابتدائي كما موجود داخل الكود الذي اضفته - داخل التعليق بعد كلمة or - .. لكن في الحقيقة ما كنت افكر فيه هي جملة واحده تدخل نفس القيم الابتدائية لكل الاوبجكتس الموجود داخل المصفوفة ( يعني من خبطه واحده فقط :D ) ..ما رأيك ؟
مع الشكر ،،
بنت اليمن ...
تم تعديل هذه المشاركة بواسطة بنت اليمن في 5 يوليو 2006 في 10:41
لا اله الا الله .. محمد رسول الله
(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)
يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين
كلها خبطة وحدة ....
ضيفي اسلوب ل Point اسمه newPoint
public Point newPoint(double xCoord, double yCoord) {
return new Point(xCoord, yCoord);
}
//main method to test it
Point[] p = new Point[3];
Point p1 = new Point();
double[] xCoord = { 1, 2, 3 };
double[] yCoord = { 5, 6, 3 };
for (int i = 0; i < p.length; i++) {
p = p1.newPoint(xCoord, yCoord);
}لست متواجد بشكل يومي
مشكور جداً اخي مجدي على اهتمامك بالرد على سؤالي ... اذن نستخدم حلقة دوران لمرور على الاوبجكتس الموجود داخل المصفوفة .. طريقة جيده و تفي بالغرض ... :)
بنت اليمن ،،
لا اله الا الله .. محمد رسول الله
(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)
يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين
فقط تنويه سريع ..
عند إنشاء المصفوفة فإنها في الحقيقة مصفوفة references و ليست مصفوفة objects.
القيمة البدائية للـ reference هي null.
بمعنى انه عند انشاء المصفوفة فإننا لم ننشيء اي كائن على الإطلاق.
جزاك الله خير
اختي بنت اليمن حسب ما فهمت من سؤالك تستطيعي تمرير الدالة كما يلي
Animal [] menager = new animal[3]; menager [0] = new dog(); menager [1] = new cat(); menager [2] = new canay();
و تستدعي الدالة ايضا كما يلي
menager [0].show()
طبعا هذه الامثلة تعليمية و ليست ذو فائدة عملية و انا احب هذه الطريقة لانني تعلمت جافا بهذه الطريقة
mofeedchaar@hotmail.com
مشكور اخي مفيد ..
لا اله الا الله .. محمد رسول الله
(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)
يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين
هذا الموضوع مغلق.