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

[Java] الطرق المختلفة لانشاء الكائنات فى الجافا create objects in Java

اذهب الى الأسفل

reference - [Java] الطرق المختلفة لانشاء الكائنات فى الجافا create objects in Java Empty [Java] الطرق المختلفة لانشاء الكائنات فى الجافا create objects in Java

مُساهمة من طرف أحمد مناع السبت فبراير 16, 2019 6:01 pm

اهلا بكم

كوننا مطورين جافا ، فإننا عادةً ما نتعامل بكثرة مع الكائنات #objects ، لكننا دائمًا ما نستخدم طريقة واحدة لإنشاء هذه الكائنات. ومع ذلك ، هناك المزيد من الطرق لإنشاء الكائنات فى الجافا ، والتي سنحاول دراستها في هذه المقالة.

1_ الطريقة الاولى إستخدام الكلمة new

إنها الطريقة الأكثر شيوعًا فى إنشاء الكائنات وذلك لانها تعتبر اسهل طريقة على الاطلاق لذلك فإن 98% من مطوري الجافا يستخدون هذا الطريقة . حيث من خلال استخدام هذه الطريقة ، يمكننا استدعاء أي دوال الفئة المنشء منها هذا الكائن حتى منشىء تلك الفئة #constructor ...ويتم استخدامها على النحو التالى :
الكود:
MyObject object = new MyObject();

ايضا يمكنك تمرير معلمات الى منشىء الفئة على النحو التالى :

الكود:
MyObject object = new MyObject(2,4);


2_الطريقة الثانية باستخدام الدالة Class.forName

إذا كنا نعرف اسم الفئة أو الكلاس التى نريد إنشاء كائن منها وما إذا كان لديها مُنشئ افتراضي عام ، فيمكننا إنشاء كائن جديد باستخدام الاسلوب #newInstance التابع للطريقة #Class.forName ...فمثلا اذا كانت الفئة #MyObject تنتمى الى الحزمة #test فاننا يمكننا انشاء كائن جديد منها على النحو التالى :

الكود:
MyObject object = (MyObject) Class.forName("test.MyObject").newInstance();

لكن تلك الطريقة فى إنشاء الكائنات ترمى الاستثنائات التالية :

ClassNotFoundException و InstantiationException , IllegalAccessException

لذلك يجب معالجتها على النحو التالى :

الكود:
try {
            MyObject object = (MyObject) Class.forName("test.MyObject").newInstance();
            
                        
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
        }


3_الطريقة الثالثة باستخدام الدالة clone()

فى الحقيقة أن هذه الطريقة لا تقوم بانشاء كائن جديد إنما تقوم بإنشاء نسخة من كائن موجود بالفعل و بالتالى فانت مجبر على إنشاء كائن بعد ذلك يمكن باستخدام الدالة #clone نسخ هذا الكائن الى كائن اخر على النحو التالى :

الكود:
MyObject anotherObject = new MyObject();
MyObject object = anotherObject.clone();

باستخدام أسلوب النسخ أعلاه لا يمكن استدعاء أي مُنشئ للفئة

4_ الطريقة الرابعة باستخدام مرجع الكائن object reference

على الرغم من أن تلك الطريقة لا تقوم بانشاء كائن فى حد ذاته وانما تقوم بانشاء مرجع #reference هو عنوان يشير إلى مكان تخزين متغيرات وأساليب هذا الكائن...وبالتالى تصبح المراجع في #Java مهمة بشكل خاص عند تمرير الوسيطات إلى الأساليب ويتم ذلك على النحو التالى :

الكود:
MyObject object ;


5_باستخدام إلغاء التسلسل deserialization

الكود:
ObjectInputStream inStream = new ObjectInputStream(new FileInputStream("data.obj"));
       MyObject object = (MyObject) inStream.readObject();

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 1108
النقاط : 202034
التقيم : 144
الدولة : مصر
الجنس : ذكر

https://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى