abstract class

  • تصحيح أخطاء البرمجة في جافا: فهم مشكلة Main

    في سياق برمجة جافا الذي قدمته، تظهر هناك مشكلة في هيكلية البرنامج. يبدو أنه تم إنشاء فئة تسمى Concept وهي فئة تجريدية (abstract class) تحتوي على طريقة (method) ملموسة (concrete) وطريقة تجريدية (abstract method). بعد ذلك، هناك فئة تسمى king تمتد من Concept وتقوم بتنفيذ الطريقة التجريدية.

    ومع ذلك، يحتاج برنامج جافا إلى وجود طريقة main ليتم تشغيلها عند تشغيل البرنامج. في هذا الحالة، يبدو أن الطريقة main قد تم تحديدها داخل فئة king وليس داخل فئة Concept.

    لحل هذه المشكلة، يمكنك إما نقل الطريقة main إلى داخل فئة Concept أو يمكنك إنشاء فئة جديدة تحتوي على الطريقة main وتقوم بإنشاء كائن من فئة king فيها.

    فيما يلي مثال لتعديل البرنامج:

    java
    abstract 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 لم تتغير.

  • abstract class ما هو ال

    هى كلاسات مجردة لايمكن انشاء كائن object منها وانما تستخدم لاغراض الوراثة
    بمعنى لو عندى كلاس person انشاء بغرض تجميع العناصر المشتركة بين اكثر من كلاس (المتغيرات والدوال ) .

    نتيجة بحث الصور عن abstract class
    وعندى مجموعة من الكلاسات التى ترث من هذا الكلاس مثل كلاس Employees وكلاس students .
    فما الداعى او الفائدة من انشاء كائن من كلاس person
    ليس واقعيا ان انشاء كائن اسمة شخص .
    هو ليس خطأ برمجى وانما هو ليس منطقيا .

     

    وبالتالى حتى نتمكن من عدم تفعيل انشاء كائن من هذا الكلاس نستخدم الصيغة كالتالى

    public abstract className{

    }

    يتم وضع كلمة abstract قبل اسم الكلاس

    فى النهاية او الخلاصة لو عندك كلاس مش عاوز حد يعمل منة كائن نكتب قبلة عبارة abstract .

    ملحوظة
    من الممكن ان يحتوى الكلاس من النوع abstract على دوال عادية ودوال اخرى من النوع abstract .

    نتيجة بحث الصور عن abstract class

     

  • أنواع الكلاسات فى جافا بالنسبة للوراثة

     

    الكلاسات في الجافا تنقسم إلى عدة أنواع من حيث الوراثة وهم :

    concrete class

    هو كلاس تم أنشائة اما من اجل الوراثة او لانشاء كائن (object) من هذا الكلاس .
    وهو يحتوى على مجموعة من المتغيرات والدوال إنظر المثال التالي :

    نتيجة بحث الصور عن ‪concrete class‬‏

     

    abstract class

    هو كلاس عام تم انشائة من اجل الوراثة فقط .و لايمكن أنشاء كائن (object) منة .

    نتيجة بحث الصور عن ‪abstract class‬‏
    ويحتوى على متغيرات وكذلك دوال اما من النوع العادى او دوال من النوع abstract وهى الدوال المجردة اى دالة بدون body . ويترك تنفيذها اجباريا لاى كلاس يرث من هذا الكلاس .
    ويجب ان تكون دوال abstract بداخل كلاس من النوع abstract

     

    وهناك مفهوم اخر فى الجافا هو interface وهو عبارة عن اطار يحتوى على مجموعة من المتغيرات بشرط ان تكون final

    نتيجة بحث الصور عن ‪interface class‬‏
    وكذلك مجموعة من الدوال بشرط ان تكون جميعا من النوع abstract .وهو بديل للوراثة المتعددة .

     

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

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

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