يعلم الجميع أن Java هي لغة برمجة موجهة نحو الكائن. في عالم جافا ، كل شيء هو كائن. كيف تمثل كائنًا في Java ذلك؟ فصل
نحن نعلم أن الأشياء في Java هي فئات فرعية لفئة الكائن ، لذلك سندرس اليوم استخدام الفصل في Java معًا.
اطرح سؤالًا صغيرًا: هل الكائنات الفصول؟ هدف من هو الفصل؟ الجواب هو: الفصل هو كائن ، كائن قوة لفئة java.lang.class.
حزمة com.edu.hpu ؛
اختبار الفئة العامة {public static void main (string [] args) {// instantiate a consum by new foo foo = new foo () ؛ // احصل على مثيل الفئة من خلال إنشاء طريقة getClass () لفئة الكائن C1 = foo.getClass () ؛ // أي فئة لديها فئة متغيرة ثابتة فئة متغيرة C2 = foo.class ؛ // C1 و C2 يمثلان نوع فئة فئة FOO (نوع الفئة) System.out.println (C1 == C2) ؛ الفئة C3 = فارغة ؛ حاول {// الطريقة الثالثة للحصول على نوع الفئة من الفئة C3 = class.forname ("com.edu.hpu.foo") ؛ } catch (classNotFoundException e) {E.PrintStackTrace () ؛ } system.out.println (c1 == c3) ؛ حاول {// إنشاء كائن مثيل للفئة من خلال نوع الفئة foo c4 = (foo) c1.newinstance () ؛ C4.start () ؛ } catch (InstantiationException e) {e.printStackTrace () ؛ } catch (alfictAccessException e) {e.printStackTrace () ؛ }}} class foo {public void start () {system.out.println ("foo class") ؛ }}من خلال الكود أعلاه ، هل لديك فهم أعمق للفئة؟ يمكننا إنشاء كائنات مثيل فئة من خلال الكلمة الرئيسية الجديدة ، ويمكننا أيضًا إنشاء كائنات مثيل للفئة من خلال نوع الفئة. هناك ثلاثة أشكال من الطرق المذكورة أعلاه للحصول على أنواع الفصل الدراسي. يحصلون على نوع فئة واحد فقط ، لذلك C1 == C2 == C3: صحيح.
بعد مقدمة موجزة أعلاه ، هل لديك فهم أعمق للفئة في جافا؟ دعنا نستخدم مثالًا صغيرًا لتقديم الاستخدام الفعلي لأنواع الفصول الدراسية وحالات الفصل.
مكاتب الفئة {public static void main (string [] args) {if ("word" .equals (args [0])) {word w = new word () ؛ W.Start () ؛ } if ("excel" .equals (args [0])) {excel e = new excel () ؛ estart () ؛ }}}دعونا نلقي نظرة على الرمز أعلاه. عندما نتجمع ، هل يمكن أن يمر بشكل طبيعي؟ هنا نحتاج إلى التحدث عن التجميع والتشغيل: الفصل الذي تم تحميله في وقت الترجمة هو فئة تحميل ثابتة ؛ الفصل الذي تم تحميله في وقت التشغيل هو فئة تحميل ديناميكية. class.forname ("الاسم الكامل للفئة L") ؛ لا يمثل نوع الفئة فحسب ، بل يمثل أيضًا فئة التحميل الديناميكية. في المثال أعلاه ، قد لا نستخدم بالضرورة Word and Excel ، ولكن عندما نتجمع ، إذا لم تكن Word و Excel موجودة ، فسيحدث خطأ. لذلك بعد ذلك ، نقوم بتنفيذ المنطق أعلاه عن طريق تحميل نوع الفئة ديناميكيًا.
Office Class {public static void main (string [] args) {try {class c = class.forname (args [0]) ؛ الزراعة العضوية (OA) Oa.write () ؛ } catch (استثناء e) {E.PrintStackTrace () ؛}}} واجهة مسؤول {public void write () ؛} تنفذ كلمة الفئة {public void write () {system.out.println ("word ... start ...") ؛ }} class excel تنفذ {public void write () {system.out.println ("excel..write ..") ؛ }}وبهذه الطريقة ، يمكننا إضافة فصول ديناميكية حسب الحاجة ، وذلك لتسهيل توسيع وظائف تطبيقنا.