السلام عليكم
ارجو منكم ان تفيدوني في هذه الاسئله.,.
لماذا تكتب كلمة thisاوsuper اول جملة الconstructor?
ماهي المشكله اذا كان الconstructor private?
وشكراا
السلام عليكم
ارجو منكم ان تفيدوني في هذه الاسئله.,.
لماذا تكتب كلمة thisاوsuper اول جملة الconstructor?
ماهي المشكله اذا كان الconstructor private?
وشكراا
هذه الاسئله في لغة الجافا
ارجو المعذره...
farida faisal كتب:السلام عليكم
ارجو منكم ان تفيدوني في هذه الاسئله.,.
لماذا تكتب كلمة thisاوsuper اول جملة الconstructor?
ماهي المشكله اذا كان الconstructor private?
وشكراا
معذره اانا اول مره اشوف الموضوع دا
بالنسبه لكلمه this فهى تشير بوجهه عام الى الكلاس التى كتبت فيها
لو كان هناك متغير مثلا اسمه x وداله تدعى getX
ولو كتبت ذلك
this.x = 10; this.getX();
فانت فى هذه الحاله تشير الى اعضاء الكلاس
انما this بمفردها فانك تشير الى الكلاس فقط
تستخدم ليه فالconstructor علشان لو القيمه التى فالconstructor نفس الاسم
للفصل بينهما
نشير الى عضو الكلاس بـ this. وبكدا نفرق بين المتغير القادم والمتغير الموجود لدينا
مثلا
public class TestClass{
int x ;
int y;
public TestClass(int x , int y){
this.x= x;
this.y = y;
}
}
بالنسبه للsuper
فهى تستخدم فالوراثه
فاذا كان لديك كلاس ترث من اخرى
فيمكنك باستخدام super من وضع قيم افتراضيه فالconstructor الخاص بالـ Parent class
اذا جعلت الـconstructor فى حاله private
ففى هذه الحاله لن تستطيع اخد object من هذه الكلاس
تستخدم هذه الحاله فى حاله انك تريد ان تتأكد ان هذه الكلاس لن يتم اخد غير اوبجكت واحد منها اثناء عملك
طب ازاى اعمل منها اوبجكت
شوف المثال التالى كنت شرحته لصديق واخ عزيز على :)
/**
*
* @author Mahmoud Kelany
*/
public class PrivateConstractor {
private PrivateConstractor() {
}
public static PrivateConstractor getInstance() {
return new PrivateConstractor();
}
public void print(){
System.out.println("Private");
}
}كلاس التجربه
/**
*
* @author Mahmoud Kelany
*/
public class TestPrivateConstarcotr {
public static void main(String[] args) {
PrivateConstractor pc = PrivateConstractor.getInstance();
pc.print();
}
}بالتوفيق :)
مشكوووووووور
بس هل لازم تكون ال this في اول الجمله؟؟
farida faisal كتب:مشكوووووووور
بس هل لازم تكون ال this في اول الجمله؟؟
ما ممكن يكون عندك constructor لكلاس بتاخد اوبجكت من الكلاس اللى انت فيها
فعاوز تبعت ليها الكلاس دى بتقول this
انما فى باقى الحالات اكيد بتكون فالاول
على حسب اللى واجهنى كله فالاول
مشكوور
معلش يا محمود ما فائده ال private constructor بشكل اوضح ؟؟
انت قلت ان الكلاس لا يتم مناداته الا مره واحده ... فى حاله طبعا عدم وجود الداله getinstance
كمان ما فائده جعل هذه الداله من نوع privateconstructor .
ممكن تضع تعليقات بجانب كل سطر كوود لأن المثال جيد ما شاء الله ..
تم تعديل هذه المشاركة بواسطة The expendable في 19 نوفمبر 2010 في 17:47

اذا كنت لا تعلم الى اين تذهب... فكــل الطرق تؤدى الى هناك
اخى احمد هذا كما ذكرت فى حاله انك تريد ان تكون متأكدا انك اخدت اوبجكت واحد من الكلاس
وهذا نادرا ما يحدث
انا مش فاهم ايه اللى مش واضح
ممكن توضح ايه الغير واضح فالمثال؟
شوف اللينكات دى
سلام
قد يستخدم ال Private Constructor في حالات تستجوب الحفاظ فقط على كائن واحد من صنف معين
مثلا:
لديك صنف بأسم MyNetworkMonitor و للحاجة توجب منع صنع اكثر من كائن من هذا الصنف
لذلك نقوم باستخدام ال Private Constructor كالتالي:
public class MyNetworkMonitor {
private static MyNetworkMonitor myNetworkMonitor;
private MyNetworkMonitor() {
}
public static void startMonitor() {
if (myNetworkMonitor == null) {
myNetworkMonitor = new MyNetworkMonitor();
}
}
public static MyNetworkMonitor getInstance() {
return myNetworkMonitor;
}
}و عند استدعاء هذا الكائن :
MyNetworkMonitor.startMonitor(); MyNetworkMonitor mnm = MyNetworkMonitor.getInstance();
اذا حاولت ان تصنع كائن جديد بواسطة الدالة new
سوف يظهر compile error
MyNetworkMonitor monitor=new MyNetworkMonitor();
اقتباسMyNetworkMonitor() has private access in MyNetworkMonitor
تم تعديل هذه المشاركة بواسطة .S.T.A.L.K.E.R في 19 نوفمبر 2010 في 20:35
اعتقد ان كدا كفايه اوووووووووووى ![]()
![]()
فيه اسئله تانى فالـ Private Constructor
هو اللى انا عمال اقوله ليك من الصبح
اخونا محمد قاله ليك بردوا
باين عليك اكلت فالعيد كتير
بجد بارك الله فيك اخى شرح وافى +1
اقتباسهو اللى انا عمال اقوله ليك من الصبحاخونا محمد قاله ليك بردوا
أخ محمود انا عايز اقولك ان انت شكلك اكلت اللحمه كلها وانتخت

اذا كنت لا تعلم الى اين تذهب... فكــل الطرق تؤدى الى هناك
الأخ الكريم/الأخت الكريمة
السلام عليكم ورحمة الله وبركاته
مرحباً بكم في منتدى الفريق العربي للبرمجة
نود تنبيهك أن العنوان غير مناسب.
الرجاء اختيار عنوان مناسب أكثر في مواضيعك القادمة، وهذا بمثابة إشعار للأهمية.
وفي حال التكرار سيتعرض موضوعك للإغلاق والحذف!!!
قواعد المشاركة
شاكرين لكم حُسن تعاونكم
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…