البرمجة

تحديث قيمة maxCarryOns في Java

بدأت دراستي للغة الجافا من موقع Pluralsight.com، وقمت بكتابة الكود أدناه لمتابعة دروس الفيديو. يتناول الموضوع تقنية تحميل الطرق (Method Overloading). يبدو أن الكود لا يقوم بزيادة عدد الركاب على الفور بمجرد تنفيذ طريقة hasCarryOnSpace. أقوم بإستدعاء هذه الطريقة داخل طريقة add1Passanger(int bags, int carryOns) بعد العبارة if وكذلك أقوم بإستدعائها داخل طريقة add1Passenger(Passenger p, int carryOns).

ما الخطأ في منطقي…؟

المشكلة في الكود تكمن في أنه عندما تقوم بإضافة راكب جديد مع الحقائب والأمتعة الشخصية (carry-ons)، فإنك تقوم بزيادة عدد الركاب وكذلك تقوم بتحديث عدد الحقائب المفحوصة (checked bags) وعدد الأمتعة الشخصية الإجمالية (total carry-ons) بشكل صحيح. ولكن، الخطأ يكمن في كيفية تحديث maxCarryOns. في بداية الكود، قمت بتعريف maxCarryOns كمتغير خاص (private) وقمت بتهيئته باستخدام قيمة checkedBags * 2، وهذا يعني أنه يتم تهيئته فقط مرة واحدة عند بداية تشغيل البرنامج. لذا، حتى عندما تقوم بإضافة راكب جديد مع أمتعته الشخصية (carry-on)، فإن maxCarryOns لا يتغير لأنه لم يتم تحديث قيمة checkedBags.

لحل هذه المشكلة، يمكنك تحديث قيمة maxCarryOns في كل مرة يتم فيها إضافة راكب جديد مع أمتعته الشخصية. يمكنك فعل ذلك عن طريق تحديث قيمة maxCarryOns داخل طرق الإضافة المختلفة، مثل add1Passenger(int bags, int carryOns) و add1Passenger(Passenger p, int carryOns). يمكنك ببساطة حساب maxCarryOns مباشرةً داخل هذه الطرق باستخدام القيم الحالية لـ checkedBags.

على سبيل المثال، يمكنك تحديث add1Passenger(int bags, int carryOns) كما يلي:

java
public void add1Passenger(int bags, int carryOns) { if (hasSeats() && hasCarryOnSpace(carryOns)) { add1Passanger(bags); totalCarryOns += carryOns; maxCarryOns = checkedBags * 2; // تحديث قيمة maxCarryOns } }

وكذلك، قم بتحديث الطرق الأخرى التي تقوم بإضافة ركاب بأمتعتهم الشخصية بنفس الطريقة.

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

المزيد من المعلومات

بعد التعديلات اللازمة على الطرق المعنية، يتم الآن تحديث قيمة maxCarryOns بشكل صحيح في كل مرة يتم فيها إضافة راكب جديد مع أمتعته الشخصية. هذا يضمن أن الحسابات الخاصة بالحد الأقصى لعدد الأمتعة الشخصية يتم تحديثها بشكل صحيح وفقًا لعدد الحقائب المفحوصة الحالي.

بالإضافة إلى ذلك، من المهم فحص وتحديث maxCarryOns في كل طريقة إضافة تستند إلى أمتعة الراكب الشخصية، حيث يمكن أن يؤدي تجاوز الحد الأقصى لعدد الأمتعة الشخصية المسموح بها إلى مشاكل في التشغيل.

باستخدام هذا النهج، يمكنك الآن تشغيل البرنامج بنجاح والتأكد من أن قيم maxCarryOns تتم مزامنتها بشكل صحيح مع عدد الحقائب المفحوصة الحالي. وبالتالي، يتم تجنب المشكلة التي واجهتك في عدم زيادة عدد الركاب بشكل صحيح بعد تنفيذ طرق إضافة الركاب التي تعتمد على أمتعة الركاب الشخصية.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر