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

مشكلة بكود يتعلق بالتوريث والمصفوفات

بدأه yousefal في 28 نوفمبر 2011 · 7 رد · 455 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هذه محاولتي في classالرئيسي والسؤال يستخدم arraylistويستخدم object ولكن لا اعرف كيف احل هاي المشكلة اللي بالكود؟؟؟

//
import java.util.ArrayList;
public class Main {


	public static void main(String[]args)
	{  String  d=null;
		ArrayList[] arr=new ArrayList[5];
	Taxi v=new Taxi(0, 0, 0, null, 0.0, false);
	Taxi w=new Taxi(0, 0, 0, null, 0.0, false);
	Taxi x=new Taxi(0, 0, 0, null, 0.0, false);
	Truck y=new Truck(0, 0, 0, null, 0.0, false);
	Truck z=new Truck(0, 0, 0, null, 0.0, false);



		v.setNoofdoors(3);
		v.setNoofcylinders(12);
		v.setTransmissiontype(7);
		v.setColor("black");
		v.setFuellevel(8.33);
		v.setCustomers(true);

		w.setNoofdoors(5);
		w.setNoofcylinders(14);
		w.setTransmissiontype(7);
		w.setColor("red");
		w.setFuellevel(7.78);
		w.setCustomers(false);

		x.setNoofdoors(7);
		x.setNoofcylinders(16);
		x.setTransmissiontype(6);
		x.setColor("orange");
		x.setFuellevel(9.38);
		x.setCustomers(false);

		y.setNoofdoors(6);
		y.setNoofcylinders(13);
		y.setTransmissiontype(4);
		y.setColor("white");
		y.setFuellevel(6.97);
		y.setCargo(true);

		z.setNoofdoors(9);
		z.setNoofcylinders(11);
		z.setTransmissiontype(8);
		z.setColor("green");
		z.setFuellevel(5.64);
		z.setCargo(false);

		arr.add((Object)v);
		arr.add((Object)w);
		arr.add((Object)x);
		arr.add((Object)y);
		arr.add((Object)z);

		Object a = arr.get(0);
		Object b = arr.get(1);
		Object c = arr.get(2);
		Object d = arr.get(3);
		Object e = arr.get(4);



	 System.out.println(a+"\n\n"+b+"\n\n"+c+"\n\n"+d+"\n\n"+e);
	}

}
#2

ممكن توضح سؤالك اكثر..

عفواً أحبتي انقطاعي بسبب الدراسة دعواتكم بالتوفيق..

{ لا ينال العلم مستحٍ ولا مستكبر }

#3

السلام عليكم ..

  1. لعمل مجموعة من العناصر لدينا طريقتان :
    1. المصفوفات : عندما يتم حجزها في البداية .. لا يمكن تغيير عدد عناصرها .. فلو قلنا مثلا
      int[] arr = new int[5];
      هذا معناه أننا حجزنا مصفوفة من خمسة عناصر .. طبعا في جافا يوجد تقنية لنسخ المصفوفة إلى مصفوفة أكبر ..
    2. الــ ArrayList : تمثل تجمع ديناميكي للعناصر .. أي يمكن إضافة أو حذف العناصر منها و بالتالي يتغير حجمها بعد أن نقوم بتعريفيها ..
      ArrayList arr = new ArrayList();
    3. في مثالك .. ماذا تريد أن تستخدم .. و الصف Taxi ما علاقته بالصف truck من ناحية الوراثة .. من منهما الأب super و من الأبن derived .
    4. لجعل المثال يعمل :

      ArrayList arr = new ArrayList();
      //String d = null;
    5. مرر القيم من الباني Constructor بدلا من الاجرائيات setXXX

تم تعديل هذه المشاركة بواسطة houssam11350_11350 في 29 نوفمبر 2011 في 00:13

1

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#4

اخواني سأضع الكود كاملا واتمنى ان تساعدوني باسرع وقت ممكن .........

تم تعديل هذه المشاركة بواسطة يوسف حسين في 29 نوفمبر 2011 في 00:38

#5

اخي حسام اجريت التعديل الذي طلبت وما نفع ،، امل باعطائكم الكود كاملا ان تفيدوني اكثر.

الرابط من هنا

http://www.palsharing.com/uwryizq3sahg.html

#6

ممكن توضيح المطلوب أو المشكلة ؟

----------------------------

بالنسبة للكود المرفق إذا كانت المشكلة فى الخطأ :

Cannot invoke add(Object) on the array type ArrayList[]

راجع مداخلة الأخ حسام ، غير التعريف الخاص بال Arraylist من

        ArrayList[] arr=new ArrayList[5];

إلى :

ArrayList arr = new ArrayList();

أو :

ArrayList<Object> arr = new ArrayList<Object>();

أبضا فم بحذف المتغير d من نوع String حيث انة لا يستخدم

String d = null;

بعد إجراء التعديلات ، هذا هو الناتج بعد تشغيل البرنامج :

taxi:::
Number of doors:3  
 Number of cylinders: 12
transmission type:7
colur:black
fuellevel:8.33
  there is a customer in a taxi. 



taxi:::
Number of doors:5  
 Number of cylinders: 14
transmission type:7
colur:red
fuellevel:7.78
  there is no customer in a taxi. 



taxi:::
Number of doors:7  
 Number of cylinders: 16
transmission type:6
colur:orange
fuellevel:9.38
  there is no customer in a taxi. 



Truck:::
Number of doors:6  
 Number of cylinders: 13
transmission type:4
colur:white
fuellevel:6.97
 there is a cargo in truck:



Truck:::
Number of doors:9  
 Number of cylinders: 11
transmission type:8
colur:green
fuellevel:5.64
 there is no cargo in truck:
1
#7

نعم ،، صحيح ما ذكره اخ حسام وابلكوج وتم تفعيل البرنامج وتم ترشيح اجابتكم ، وهي مفيدة.

لكن هل كان سبب الخطا أن الarraylistمرنة ولا ينبغي تحديد حجمها اثناء تعريفها؟

#8

السلام عليكم ..

مشكوين الأخوة على الردود ..

اقتباس
لكن هل كان سبب الخطا أن الarraylistمرنة ولا ينبغي تحديد حجمها اثناء تعريفها؟

كان الخطأ أنك استخدمت الأقواس [] مع تعريف الــ ArrayList ... و هي صف عادي Class لا تحتاج لهذه الأقواس ..

و بالمناسبة يمكن تحديد حجم ابتدائي للـ ArrayList كمايلي :

ArrayList ar = new ArrayList(5);

لكنه بالاساس هو تجميع ديناميكي للعناصر .

اما لو أردت التعامل مع المصفوفات .. فإليك المثال .. و سأستفيد أن كل الصفين Taxi و Truck يرث من الصف Vehicles و بالتالي سأعمل مصفوفة من Vehicles و أضع فيها كائنات من نوع Taxi و truck فلا مشكلة حسب ميادئ البرمجة غرضية التوجه :

import java.util.ArrayList;

public class Main
{

	public static void main(String[] args)
	{

    	Vehicles[] arr = new Vehicles[5];
    	Taxi v = new Taxi(0, 0, 0, null, 0.0, false);
    	Taxi w = new Taxi(0, 0, 0, null, 0.0, false);
    	Taxi x = new Taxi(0, 0, 0, null, 0.0, false);
    	Truck y = new Truck(0, 0, 0, null, 0.0, false);
    	Truck z = new Truck(0, 0, 0, null, 0.0, false);



    	v.setNoofdoors(3);
    	v.setNoofcylinders(12);
    	v.setTransmissiontype(7);
    	v.setColor("black");
    	v.setFuellevel(8.33);
    	v.setCustomers(true);

    	w.setNoofdoors(5);
    	w.setNoofcylinders(14);
    	w.setTransmissiontype(7);
    	w.setColor("red");
    	w.setFuellevel(7.78);
    	w.setCustomers(false);

    	x.setNoofdoors(7);
    	x.setNoofcylinders(16);
    	x.setTransmissiontype(6);
    	x.setColor("orange");
    	x.setFuellevel(9.38);
    	x.setCustomers(false);

    	y.setNoofdoors(6);
    	y.setNoofcylinders(13);
    	y.setTransmissiontype(4);
    	y.setColor("white");
    	y.setFuellevel(6.97);
    	y.setCargo(true);

    	z.setNoofdoors(9);
    	z.setNoofcylinders(11);
    	z.setTransmissiontype(8);
    	z.setColor("green");
    	z.setFuellevel(5.64);
    	z.setCargo(false);

    	arr[0] = v;
    	arr[1] = w;
    	arr[2] = x;
    	arr[3] = y;
    	arr[4] = z;

    	Vehicles a = arr[0];
    	Vehicles b = arr[1];
    	Vehicles c = arr[2];
    	Vehicles d = arr[3];
    	Vehicles e = arr[4];



    	System.out.println(a + "\n\n" + b + "\n\n" + c + "\n\n" + d + "\n\n" + e);
	}
}

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

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