الشيء الأكثر رعبا هو عدم ارتكاب الأخطاء ، ولكن لا تجدها. حتى الآن ، أعلم أن هناك خطأ ما في فهمي للمتغيرات الصف.
ربما قد يكون ذلك بسبب عدم الاستخدام المتكرر للمتغيرات الطبقية ، ولم يتم اكتشاف هذه المشكلة . لقد تعلمت فقط ما هي متغيرات الفصل عندما كنت أشاهد C ++ مؤخرًا ؟
اعتدت أن أعتقد أن الفرق الوحيد بين متغيرات الفئة ومتغيرات الأعضاء هو أنه يمكن الوصول إلى متغيرات الفصل مباشرة من خلال أسماء الفصول الدراسية وهي ثابتة. تحتاج المتغيرات الأعضاء إلى إنشاء إنشاء من خلال الحالات.
لم أتوقع أبدًا أنني تجاهلت وجود متغير فئة واحد فقط في فئة واحدة ، وكل مثيل هو نفسه. سيؤثر التعديل في حالة واحدة على متغير الفصل في حالات أخرى ... (على الرغم من عدم وجود خطأ ناتج عن هذا عادة ، ما زلت بحاجة إلى تعويض نقاط الضعف المعرفية).
فيما يلي مثالان مكتوبان في Java و Python :
الطبقة العامة oo {public static string s ؛ السلسلة العامة م ؛ ثابت {s = "ever" ؛ } public static void main (string [] args) {oo o1 = new oo () ؛ OO O2 = جديد OO () ؛ O1.M = "مرة واحدة" ؛ // قيمة/عنوان متغيرات الفئة في حالات مختلفة هي نفس system.out.println (O1.S) ؛ System.out.println (O2.s) ؛ System.out.println (O1.S.HashCode ()) ؛ System.out.println (O2.s.hashCode ()) ؛ O1.S = "123" ؛ System.out.println (O2.s) ؛ // تغيير متغير الفئة وتؤثر على مثيلات أخرى system.out.println (o1.m.hashcode ()) ؛ System.out.println (O2.m.HashCode ()) ؛ // nullpointerxception // متغيرات الأعضاء لها عناوين مختلفة}} رقم! self.num += 1 def print (self): print ("count_id: ٪ s ، num_id: ٪ s" ٪ (__ class __. count) ، id (self.num))) print ("count: ٪ d ، num: ٪ d" ٪ (__ class __. بحلول وقت واحد ، يتم زيادة متغير عضو I2 بمقدار مرتين ، ويتم زيادة متغير الفصل بنسبة 3 مرات في إجمالي i1.add () i2.add () i2.add () i1.print () i2.print ()ما سبق هو كل شيء عن هذا المقال. سوف تنتهي العطلة غدا. آمل أن يكرس الجميع أنفسهم بنشاط لعملهم وأن يستمروا في الانتباه إلى المقالات التي يشاركها المحرر.