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

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

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

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

اهلا بكم

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

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

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

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

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


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

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

الكود:
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()

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

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

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

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

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

الكود:
MyObject object ;


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

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

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

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

http://egy-tech.forumegypt.net

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

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

ََ

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


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