السلام عليكم
اخواني اسف على طرح السؤال مرة ثانية، لكن لأن الأمر مستعجل وعلي انهائه اليوم، ومن اكثر من اسبوع وانا اكتب في البرنامج لكن في النهاية هذه الدالة ما بتعمل بشكل صحيح، ومش عارف الخطأ بالضبط وين
طرحت السؤال بموضوع اسئلتكم واستفساراتكم لكن للأسف لا أحد من المبرمجين يجيب على الموضوع عدا عن صاحب الموضوع الاخ علاء الصالحي، لذلك لضرورة الامر وضعته في موضوع مستقل
سؤالي كالتالي:
قمت بعمل برنامج عن الفورمولا 1، وعلي ان اكتب دالة التي تقوم باضافة سيارة الى مصفوفة
هذه هي الدالة التي كتبتها ارجو ان تقوموا بابلاغي ما هو الخطأ في هذه الدالة
public boolean addCarToArray(int licensePlate,int year, String
manufacturer, String model,Color colour,int numDoors, double
topSpeed, int totalRaces) {
if (carsArr.length<MAX_ARRAYS_LENGTH){
for (current_Length_Car_Array=0;current_Length_Car_Array<
MAX_ARRAYS_LENGTH;current_Length_Car_Array++){
if (carsArr[current_Length_Car_Array]==null){
carsArr[current_Length_Car_Array].getLicensePlate();
carsArr[current_Length_Car_Array].setLicensePlate(licensePlate);
carsArr[current_Length_Car_Array].getYear();
carsArr[current_Length_Car_Array].setYear(year);
carsArr[current_Length_Car_Array].getManufacture();
carsArr[current_Length_Car_Array].setManufacture(manufacturer);
carsArr[current_Length_Car_Array].getModel();
carsArr[current_Length_Car_Array].setModel(model);
carsArr[current_Length_Car_Array].getColor();
carsArr[current_Length_Car_Array].setColor(colour);
carsArr[current_Length_Car_Array].getNumDoors();
carsArr[current_Length_Car_Array].setNumDoors(numDoors);
carsArr[current_Length_Car_Array].getTopSpeed();
carsArr[current_Length_Car_Array].setTopSpeed(topSpeed);
return true;
}
else return false;
}
}
return false;
}فقام الأخ علاء بالرد علي بالرد التالي:
اقتباسواضح في الدالة السابقة أنك لا تضيف أي شيءكل ما تقوم به أنك تفحص على هل العنصر خالي أي يساوي null
بعد ذلك تقوم باتسدعاء get لهذا العنصر الخالي لذلك ستحصل على خطأ nullPointer
تحياتي
لكني لم افهم ما علي ان اقوم به لحل المشكلة، فقمت بالتغيير نوعاً ما وقمت باضافة المتغيرات بواسطة الـ constructor الذي باسم RaceCar لكنها ايضا لم تعمل.
وهذا ما قمت بكتابته،فأي الدالتين أقرب الى الصحيح؟
وما هو الحل برأيكم
public boolean addCarToArray(int licensePlate,int year, String
manufacturer, String model,Color colour,int numDoors, double
topSpeed, int totalRaces) {
int temp=0;
if (carsArr.length<MAX_ARRAYS_LENGTH){
for (current_Length_Car_Array=temp;current_Length_Car_Array<
MAX_ARRAYS_LENGTH;current_Length_Car_Array++){
if (carsArr[current_Length_Car_Array]==null){
ArrayList <RaceCar> car=new ArrayList<RaceCar>();
car.add(new RaceCar(licensePlate,year,manufacturer, model, colour,
numDoors,topSpeed, totalRaces));
temp=current_Length_Car_Array;
return true;
}
else return false;
}
}
return false;
}بارك الله فيكم مقدماً
