في سياق برمجة جافا الذي قدمته، تظهر هناك مشكلة في هيكلية البرنامج. يبدو أنه تم إنشاء فئة تسمى Concept
وهي فئة تجريدية (abstract class) تحتوي على طريقة (method) ملموسة (concrete) وطريقة تجريدية (abstract method). بعد ذلك، هناك فئة تسمى king
تمتد من Concept
وتقوم بتنفيذ الطريقة التجريدية.
ومع ذلك، يحتاج برنامج جافا إلى وجود طريقة main
ليتم تشغيلها عند تشغيل البرنامج. في هذا الحالة، يبدو أن الطريقة main
قد تم تحديدها داخل فئة king
وليس داخل فئة Concept
.
لحل هذه المشكلة، يمكنك إما نقل الطريقة main
إلى داخل فئة Concept
أو يمكنك إنشاء فئة جديدة تحتوي على الطريقة main
وتقوم بإنشاء كائن من فئة king
فيها.
فيما يلي مثال لتعديل البرنامج:
javaabstract class Concept {
public void Mymethod() {
System.out.println("This is a concrete method");
}
abstract public void junk();
}
class King extends Concept {
public void junk() {
System.out.println("This is an abstract method");
}
}
public class Main {
public static void main(String[] args) {
King kingObject = new King();
kingObject.junk();
}
}
في هذا المثال، تم إنشاء فئة جديدة تسمى Main
والتي تحتوي على الطريقة main
، وتم إنشاء كائن من فئة King
داخل الطريقة main
لتحقيق تشغيل البرنامج بشكل صحيح.
المزيد من المعلومات
تفضل بفهم أعمق حول مفاهيم البرمجة بلغة جافا وكيفية تصحيح الأخطاء في الشيفرة المقدمة:
تبدأ الشيفرة بتعريف فئة تجريدية (abstract class) تسمى Concept
. هذه الفئة تحتوي على طريقة (method) ملموسة (concrete) تسمى Mymethod
وتُطبع رسالة بسيطة. أيضًا، تحتوي على طريقة تجريدية (abstract method) تسمى junk
.
ثم تأتي فئة تسمى king
التي تمتد من Concept
وتقوم بتنفيذ الطريقة التجريدية junk
من Concept
.
المشكلة الرئيسية هي أن البرنامج لا يحتوي على طريقة main
في الفئة Concept
، وهي الطريقة التي يقوم مشغل الجافا بالبحث عنها لتنفيذ البرنامج. لذا، يجب أن تكون الطريقة main
متاحة في الفئة التي يتم تشغيلها.
تم تصحيح البرنامج بإنشاء فئة جديدة تسمى Main
تحتوي على الطريقة main
ويتم فيها إنشاء كائن من فئة King
واستدعاء الطريقة junk
ليتم تنفيذ البرنامج بشكل صحيح.
يُلاحظ أنه يُفضل استخدام أسماء الفئات بحرف كبير في بدايتها واتباع أسلوب Camel Case، حيث يتم تجميع الكلمات بحرف كبير في بداية كل كلمة عدا الأولى. في هذا السياق، تم تغيير اسم الفئة king
إلى King
والفئة Concept
لم تتغير.