سؤال

حسنًا ، لدي مهمة حيث يتعين علي إنشاء فصل مع مجموعة من الخصائص الخاصة التي قمت بها. يصبح الأمر صعبًا لأنني جديد إلى حد ما على برمجة Java (أو البرمجة بشكل عام) وأنا لست ممارسًا جدًا في التغليف. لم أستخدم getters/setters أو المنشئون من قبل. أنا أفهم أساليب getter/setter ، لكن لم أفهم بعد أي من المعلومات عبر الإنترنت للمشاركين ، أو حتى فهم غرضهم.

يجب أن أقوم بإنشاء Getters/Setters و Protectors لكل من الخصائص ، لذلك يبدو أنني يجب أن أتعلم استخدام هذه الأساليب. إذا كان بإمكان أي شخص أن يعطيني مثالاً لفصل مع مُنشئ وشرح ما يفعله المنشئ ، ولماذا سأستخدمه سيكون لطيفًا.

شكرا لك في وقت مبكر.

هل كانت مفيدة؟

المحلول

أولاً ، مرحبًا بك في عالم البرمجة :)

دعنا ننظر إلى مثال بسيط.

قل أنك تريد برمجة فصل لتمثيل مربع. عندما تقوم بإنشاء كائن مربع ، يجب عليك إعطاء المربع خصائص معينة ، مثل طول كل جانب. هذا هو المكان الذي يلعب فيه المنشئون.

يبدو تخطيط الفئة هكذا ، لاحظ أن متغير الطول _each_side لم يتم تعيين قيمة.

public class Square {
     int length_of_each_side;

     public Square() {
     ...
     }

     public Square(int length) {
     ...
     }
}

يمكنك الحصول على مُنشئ افتراضي يمنحك مربعًا محددًا مسبقًا إذا لم تحدد حجم المربع.

public Square() {
     length_of_each_side = 1;
}

أو يمكنك السماح لشخص ما بتحديد حجم المربع

public Square(int length) {
     length_of_each_side = length;
}

إذا أردت إنشاء مربع محدد مسبقًا (طول 1) ، فسيبدو هكذا

Square mySquare = new Square();

إذا أردت إنشاء مربع وتحديد طول 55 ، فسيبدو هكذا

Square mySquare = new Square(55);

نصائح أخرى

لست متأكدًا فقط من كيفية النظر إلى هذا في المدرسة أو ما يخبرك به معلمك ، ولكن مجرد اقتراح-لا يستخدم Getters و Petters على سبيل المثال. هناك سبب لأنهم ليسوا "تلقائيين" في جافا ، لأنه لا ينبغي أن يكون هناك حقًا.

عندما يكون لديك كائن ، فإن الفكرة هي أن تطلب من الكائن أن يفعل شيئًا لك-بمعنى آخر ، يجب أن توفر أساليب تعمل على المتغيرات لك بدلاً من الحصول على المتغير والتصرف عليه وتعيده.

هناك العديد من الأوقات التي لا يمكنك تجنبها-ولكن يجب إضافتها فقط عندما تكون متأكدًا من أنك في حاجة إليها ، وليس على سبيل العادة.

مُنشئك هو أفضل مكان لتعيين جميع متغيرات الأعضاء. في الواقع ، إذا قمت بإجراء متغيرات نهائية (عادة جيدة جدًا للدخول ، تجعل الفصل "غير قابل للتغيير") سيكون المنشئ هو المكان الوحيد الذي يمكنك تعيينه لها.

يتم ضمان استدعاء مُنشئك عند إنشاء كائنك ، لذلك يعد مكانًا جيدًا لإعداد كائنك. في مُنشرك إذا تأكدت من أن الكائن في حالة صالحة وكان لديك متغيرات عضو نهائية ، فمن المستحيل إدخال كائنك في حالة غير صالحة-هذه ممارسة مفيدة حقًا ويمكن أن توفر لك الكثير من وقت التصحيح.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top