عند تشغيل برنامج Java ، قام نظام Java دائمًا بتنفيذ تحديد نوع وقت التشغيل SO الخاصين بجميع الكائنات ، RTTI SO. تسجل هذه المعلومات فئة كل كائن. يستخدم الجهاز الظاهري عادة الطريقة الصحيحة لتنفيذ المعلومات المراد تنفيذها. يقوم فئة الفصل بتغليف حالة الكائن والواجهة.
الملخص البسيط هو كما يلي:
فئة الفصل هي أيضًا فئة ، لكن الاسم يشبه اسم الكلمة الرئيسية. جافا هي لغة حساسة.
محتوى الفئة هو نوع المعلومات التي قمت بإنشائها.
لا يمكن إنشاء كائنات فئة الفئة بطريقة جديدة () مثل فئة عادية.
يتمثل دور فئة الفصل في توفير أو الحصول على معلومات النوع التي توفر أو تحصل على كائن معين أثناء وقت التشغيل ، وهو ما يشبه وظيفة typeid () في C ++. يمكن أيضًا استخدام هذه المعلومات للتفكير.
1. مبدأ فئة الفصول
نعلم جميعًا أن جميع فئات Java ترث فئة الكائن. الفصل الدراسي. لا يمكننا إنشاء كائن فئة (المُنشئ الخاص) ، والكائن من هذه الفئة الفئة هو إنشاء كائن الفئة تلقائيًا بواسطة الجهاز الظاهري Java عند نقله ، أو يتم إنشاؤه بواسطة طريقة defineclass في المحمل. سيكون للكائنات التي ننشئها حقلًا لتسجيل موقع كائن الكائن في فئة الفئة من الكائن. كما هو مبين في الشكل أدناه:
2. احصل على كائن فئة
الطريقة الأولى هي وظيفة اسم الفئة
[أشكال فئة الترميز {}
class obj = class.forname ("الأشكال") ؛
الطريقة الثانية هي استخدام كائن كائن الكائن
نسخ رمز رمز كما يلي: أشكال الفئة {}
الأشكال S1 = أشكال جديدة () ؛
class obj = s1.getClass () ؛
Class OBJ1 = S1.GetSuperClass () ؛
الطريقة الثالثة هي استخدام نوع النوع الثابت
نسخ رمز رمز كما يلي: obj = string.class ؛
فئة OBJ1 = int.class ؛
لاحظ أنه عند استخدام هذه الطريقة لإنشاء كائن الفئة ، لن يقوم JVM بتحميل الفئة تلقائيًا (مثل السلسلة). طرق أخرى ستجعل JVM تهيئة هذه الفئة.
3. استخدم كائن الفئة الفئة لإنشاء مثيل للفئة الهدف
مثيل كائن غير دقيق
بعد الحصول على كائن من فئة الفصل ، يمكنك استخدام وظيفة NewInstance () لإنشاء مثيل للفئة الهدف. ومع ذلك ، فإن هذه الوظيفة لا تنشئ مباشرة مثيلات من الفئة المستهدفة ، ويمكنها فقط إنشاء مثيلات من فئة الكائن
نسخ رمز رمز كما يلي: obj = class.forname ("الأشكال") ؛
الكائن tassinstance = obj.newinstance () ؛
استخدم فئة التعميم للإشارة إلى مثيل الهدف من نوع حزام النوع
نسخ رمز رمز كما يلي: الأشكال> OBJ = الأشكال.
الأشكال newShape = obj.newinstance () ؛
بسبب حد النوع ، لا يمكن توجيه إشارة الكائن إلى بناء جملة فئة التعميم إلى فئات أخرى.
نسخ رمز رمز على النحو التالي: الفئة OBJ1 = int.class ؛
فئة <integer> obj2 = int.class ؛
OBJ1 = double.class ؛
//OBJ2=Double.class ؛
ومع ذلك ، هناك استخدام مرن يتيح لك الإشارة إلى أي فئة فرعية من الفئة الأساسية مع كائنات من الفصل.
كود كود على النحو التالي: الفئة <؟
OBJ = number.class ؛
OBJ = double.class ؛
لذلك ، يمكن أن يشير كائن الفئة الذي تم إنشاؤه أدناه إلى أي فئة.
نسخ رمز رمز على النحو التالي: الفئة <؟> obj = int.class ؛
OBJ = double.class ؛
OBJ = الأشكال.
آخر استخدام غريب هو أنه عند استخدام هذا الجملة العامة لإنشاء كائن فئة أساسي لكائن فئة فئة لديك في متناول اليد ، يجب عليك استخدام القواعد النحوية الخاصة التالية
نسخ رمز رمز كما يلي: أشكال الفئة العامة {}
جولة الفئة تمتد الأشكال {}
فئة <Rand> rclass = round.class ؛
الفئة <؟
// class <pass> sclass = rclass.getSuperClass () ؛
نحن نعلم أن الفئة الأساسية من الجولة هي أشكال ، لكنها لا يمكن أن تعلن مباشرة عن الفئة <sphes> ويجب استخدام قواعد اللغة الخاصة
الفئة <؟
ما سبق هو كل محتويات هذه المقالة.