إعلان
دورة تطوير التطبيقات باستخدام لغة JavaScript في هذه الدورة ستتعلم لغة جافا سكريبت, استخدام مكتبة React.js, بناء API الموقع بواسطة Node.js, تطوير تطبيق جوال باستخدام React Native, و في نهاية الدورة ستتعلم تطوير تطبيق محادثة شبيه بتطبيق WhatsApp. تعلم الآن
دورة تطوير واجهات المستخدم في هذه الدورة ستتعلم لغة HTML و لغة CSS و لغة JavaScript. من ناحية التطبيق العملي ستتعلم طريقة بناء واجهة متجر إلكتروني مكون من ست صفحات, تحويل خمسة تصاميم PSD إلى صفحات ويب, بناء واجهة مستخدم تشبه موقع يوتيوب, بناء لوحة تحكم إحترافية. تعلم الآن
تطوير تطبيقات باستخدام لغة بايثون في هذه الدورة ستتعلم أساسيات البرمجة بلغة بايثون وصولاً إلى التعامل مع أشهر أطر العمل (Flask و Django) و ستتعلم كيف تبني متجر إلكتروني يمكن للمستخدمين البيع و الشراء من خلاله. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة PHP في هذه الدورة ستتعلم لغة PHP من الصفر, استخدام إطار العمل Laravel بشرح مفصّل و عملي, كيفية تطوير شبكة اجتماعية تشبه Instagram, بناء API لتطبيق جوال وفق أسلوب RESTful, تطوير موقع إعلانات مبوبة, تطوير نظام إدارة محتوى CMS كامل. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة Ruby في هذه الدورة ستتعلم البرمجة بلغة Ruby إنطلاقاً من أبسط المفاهيم وحتى بناء تطبيق حقيقي, إستخدام إطار العمل Ruby on Rails بشرح مفصّل و عملي, بناء تطبيق حقيقي عبارة عن شبكة اجتماعية تشبه تويتر, تطوير مجتمع الكتروني يشبه حسوب I/O. تعلم الآن
دورة علوم الحاسوب هذه الدورة معدة لتكون مدخل لعلوم الحاسوب و لغات البرمجة حيث ستتعرف فيها على أنظمة التشغيل و ستتعمق في نظام لينكس و في كيفية التعامل معه من خلال موجه الأوامر, بالإضافة إلى قواعد البيانات و أساسيات الشبكات و الخوادم و مبادئ الحماية والأمان في الويب. تعلم الآن

    Java أمثلة حول وجود أكثر من كونستركتور في الـسوبر كلاس في جافا

    الآن سنقوم بتقسيم الأمثلة حسب الحالة التي قد نصادفها.


    الحالة الأولى

    في حال كان الـ Superclass يملك 2 كونستركتور, الأول لا يحتوي أي باراميترات و الثاني يحتوي باراميترات.
    هنا يمكنك عدم تعريف كونستركتور في الـ Subclass, أو تعريف واحد فارغ لكي يستدعي الكونستركتور الإفتراضي الموجود في الـ Subclass.

    في هذا المثال قمنا بتعريف كلاس إسمه A يحتوي على متغيرين x و y بالإضافة إلى 2 كونستركتور, الأول لا يقبل أي باراميتر و مهمته بتوليد قيم لهما فقط و الثاني مهمته يتيح لك تمرير قيم للمتغيرات x و y مباشرةً عند إنشاء كائن.
    بعدها قمنا بإنشاء كلاس إسمه B يرث من الكلاس A.

    بعدها سنقوم بإنشاء الكلاس Main لتجربة الكود.

    المثال الأول

    A.java
    public class A {
     
        public int x;
        public int y;
     
        // عند استدعائه y و x هنا قمنا بتعريف كونستركتور لا يأخذ أي باراميتر و مهمته فقط إعطاء قيم أولية للمتغيرات
        public A() {
            x = 50;
            y = 100;
        }
     
        // عند استدعائه y و x هنا قمنا بتعريف كونستركتور يسمح بتمرير قيم أولية للمتغيرات
        public A(int x, int y) {
            this.x = x;
            this.y = y;
        }
     
    }
    		

    B.java
    public class B extends A {          // A يرث من الكلاس B هنا قلنا أن الكلاس
     
        // هنا لا داعي لتعريف كونستركتور جديد
        // حتى و إن لم نقم باستدعائه A هنا سيتم إستدعاء الكونستركتور الإفتراضي ( الذي لا يحتوي أي بارميتر ) الموجود في الكلاس
     
    }
    		

    Main.java
    public class Main {
     
        public static void main(String[] args) {
     
            // B باستخدام الكونستركتور الفارغ الموجود بشكل تلقائي في الكلاس B هنا قمنا بإنشاء كائن من الكلاس
            B b = new B();
     
            System.out.println("x: " + b.x);
            System.out.println("y: " + b.y);
     
        }
     
    }
    		

    سنحصل على النتيجة التالية عند التشغيل.

    x: 50
    y: 100 
    		



    الحالة الثانية

    في حال كان الـ Superclass يملك كونستركتور أو أكثر, لكنه لا يملك كونستركتور لا يحتوي باراميترات.
    هنا أنت مجبر على تعريف كونستركتور في الـ Subclass, يستدعي أي كونستركتور من الـ constructors الموجودين في الـ Superclass.

    ملاحظة: عدد الباراميترات التي تضعها في كونستركتور الـ Subclass غير مهم حتى يعمل الكود بشكل سليم. المهم هنا استدعاء أي كونستركتور موجود في الـ Superclass بداخل أي كونستركتور ستقوم بتعريفه في الـ Subclass.

    في هذا المثال قمنا بتعريف كلاس إسمه A يحتوي على متغيرين x و y بالإضافة إلى 2 كونستركتور, الأول لا يقبل أي باراميتر و مهمته بتوليد قيم لهما فقط و الثاني مهمته يتيح لك تمرير قيم للمتغيرات x و y مباشرةً عند إنشاء كائن.
    بعدها قمنا بإنشاء كلاس إسمه B يرث من الكلاس A.

    بعدها سنقوم بإنشاء الكلاس Main لتجربة الكود.

    المثال الثاني

    A.java
    public class A {
     
        public int x;
        public int y;
     
        // عند استدعائه y و x يحتوي على كونستركتور يسمح بتمرير قيم أولية للمتغيرات A الكلاس
        // لأنه لا يوجد كونستركتور لا يحتوي على باراميترات Subclass هنا يجب استدعاء هذا الكونستركتور في أي
        public A(int x, int y) {
            this.x = x;
            this.y = y;
        }
     
    }
    		

    B.java
    public class B extends A {          // A يرث من الكلاس B هنا قلنا أن الكلاس
     
        // A هنا يجب تعريف كونستركتور واحد على الأقل يستدعي الكونستركتور الموجود في الكلاس
     
        // Superclass A هنا قمنا بتعريف كونستركتور يمرر القيمتين 123 و 456 في كونستركتور الـ
        public B() {
            super(123, 456);
        }
     
        // Superclass A هنا قمنا بتعريف كونستركتور نمرر له قيمتين عند استدعائه, فيقوم بدوره بتمريرهما في كونستركتور الـ
        public B(int p1, int p2) {
            super(p1, p2);
        }
     
    }
    		

    Main.java
    public class Main {
     
        public static void main(String[] args) {
     
            // الذي لا يأخذ باراميترات B باستخدام كونستركتور الكلاس B هنا قمنا بإنشاء كائن من الكلاس
            B b1 = new B();
            System.out.println("Here the constructor generate these values for the object b1:");
            System.out.println("x: " + b1.x);
            System.out.println("y: " + b1.y);
     
            System.out.println();
     
            // الذي يأخذ 2 باراميتر B باستخدام كونستركتور الكلاس B هنا قمنا بإنشاء كائن من الكلاس
            B b2 = new B(47, 13);
            System.out.println("Here the constructor generate these values for the object b2:");
            System.out.println("x: " + b2.x);
            System.out.println("y: " + b2.y);
     
        }
     
    }
    		

    سنحصل على النتيجة التالية عند التشغيل.

    Here the constructor generate these values for the object b1:
    x: 123
    y: 456
    
    Here the constructor generate these values for the object b2:
    x: 47
    y: 13 
    		
    إعلان

    Eqla3Tech.com

    شروحات مكتوبة حول لغات البرمجة و تقنية المعلومات باللغة العربية مقدمة من إقلاع تك.

    لغة جافا لغة ++C قواعد البيانات نظام ويندوز نظام لينكس الشبكات تقنية المعلومات الأمن السيبراني

    الدورات

    أدوات مساعدة

    الأقسام

    دورات
    مقالات أسئلة مشاريع كتب