[Java] الطرق المختلفة لانشاء الكائنات فى الجافا create objects in Java
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: أساسيات اللغة Java Basics
صفحة 1 من اصل 1 • شاطر
[Java] الطرق المختلفة لانشاء الكائنات فى الجافا create objects in Java
اهلا بكم
كوننا مطورين جافا ، فإننا عادةً ما نتعامل بكثرة مع الكائنات #objects ، لكننا دائمًا ما نستخدم طريقة واحدة لإنشاء هذه الكائنات. ومع ذلك ، هناك المزيد من الطرق لإنشاء الكائنات فى الجافا ، والتي سنحاول دراستها في هذه المقالة.
1_ الطريقة الاولى إستخدام الكلمة new
إنها الطريقة الأكثر شيوعًا فى إنشاء الكائنات وذلك لانها تعتبر اسهل طريقة على الاطلاق لذلك فإن 98% من مطوري الجافا يستخدون هذا الطريقة . حيث من خلال استخدام هذه الطريقة ، يمكننا استدعاء أي دوال الفئة المنشء منها هذا الكائن حتى منشىء تلك الفئة #constructor ...ويتم استخدامها على النحو التالى :
ايضا يمكنك تمرير معلمات الى منشىء الفئة على النحو التالى :
2_الطريقة الثانية باستخدام الدالة Class.forName
إذا كنا نعرف اسم الفئة أو الكلاس التى نريد إنشاء كائن منها وما إذا كان لديها مُنشئ افتراضي عام ، فيمكننا إنشاء كائن جديد باستخدام الاسلوب #newInstance التابع للطريقة #Class.forName ...فمثلا اذا كانت الفئة #MyObject تنتمى الى الحزمة #test فاننا يمكننا انشاء كائن جديد منها على النحو التالى :
لكن تلك الطريقة فى إنشاء الكائنات ترمى الاستثنائات التالية :
ClassNotFoundException و InstantiationException , IllegalAccessException
لذلك يجب معالجتها على النحو التالى :
3_الطريقة الثالثة باستخدام الدالة clone()
فى الحقيقة أن هذه الطريقة لا تقوم بانشاء كائن جديد إنما تقوم بإنشاء نسخة من كائن موجود بالفعل و بالتالى فانت مجبر على إنشاء كائن بعد ذلك يمكن باستخدام الدالة #clone نسخ هذا الكائن الى كائن اخر على النحو التالى :
باستخدام أسلوب النسخ أعلاه لا يمكن استدعاء أي مُنشئ للفئة
4_ الطريقة الرابعة باستخدام مرجع الكائن object reference
على الرغم من أن تلك الطريقة لا تقوم بانشاء كائن فى حد ذاته وانما تقوم بانشاء مرجع #reference هو عنوان يشير إلى مكان تخزين متغيرات وأساليب هذا الكائن...وبالتالى تصبح المراجع في #Java مهمة بشكل خاص عند تمرير الوسيطات إلى الأساليب ويتم ذلك على النحو التالى :
5_باستخدام إلغاء التسلسل deserialization
كوننا مطورين جافا ، فإننا عادةً ما نتعامل بكثرة مع الكائنات #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();
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: أساسيات اللغة Java Basics
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
اليوم في 7:23 am من طرف mona mohamed
» حداد هناجر
أمس في 8:57 pm من طرف moslema_r
» ارخص شركة تنظيف ثريات بالرياض
الخميس مايو 16, 2024 7:32 pm من طرف moslema_r
» تصميم تطبيق للأسر المنتجة
الأربعاء مايو 15, 2024 10:41 am من طرف mona mohamed
» شركة تنظيف منازل ام القيوين
الثلاثاء مايو 14, 2024 7:50 pm من طرف moslema_r
» شركة تنظيف محلات بالرياض
الثلاثاء مايو 14, 2024 7:34 pm من طرف moslema_r
» تصميم تطبيق مثل حراج
الثلاثاء مايو 14, 2024 9:59 am من طرف mona mohamed
» تصميم تطبيق نقل أثاث
الإثنين مايو 13, 2024 10:30 am من طرف mona mohamed
» افضل شركة تنظيف ستائر بالرياض
الأحد مايو 12, 2024 7:57 pm من طرف moslema_r
» تصميم تطبيق للسوبر ماركت
الأحد مايو 12, 2024 7:22 am من طرف mona mohamed