أولاً ، دعنا نتحدث بإيجاز عن تعريف ميزاتها الرئيسية الثلاث:
التغليف: يخفي خصائص وتفاصيل التنفيذ للكائن ، فقط يعرض الواجهة للعالم الخارجي ، ويتحكم في مستوى الوصول إلى الخصائص القراءة وتعديلها في البرنامج. الجمع بين البيانات والسلوكيات المستخرجة (أو الوظائف) لتشكيل كلي عضوي ، أي ، يجمع بشكل عضوي بين البيانات مع الكود المصدري لبيانات التشغيل لتشكيل "فئة" ، حيث تكون البيانات والوظائف أعضاء في الفصل. الغرض من التغليف هو تعزيز الأمان وتبسيط البرمجة. لا يتعين على المستخدمين فهم تفاصيل التنفيذ المحددة ، ولكن ببساطة يستخدمون أعضاء الفصل من خلال واجهة خارجية ، وهو إذن وصول محدد. المتطلبات الأساسية للتغليف هي: خصخصة جميع السمات ، وتوفير طرق getter و setter لكل سمة. إذا كان هناك مُنشئ يحتوي على معلمات ، فيجب عليك كتابة مُنشئ بدون معلمات. أثناء التطوير ، غالبًا ما يتعين عليك اختبار الفصول المكتوبة بالفعل ، لذلك في بعض الأحيان يمكنك إعادة كتابة طريقة tostring ، ولكن هذا ليس ضروريًا.
الميراث: تمكين إعادة استخدام الكود من خلال الميراث. يتم الحصول على جميع الفصول في Java عن طريق وراثة مباشرة أو غير مباشرة فئة java.lang.object. تسمى الفئة الموروثة فئة فرعية ، والطبقة الموروثة تسمى فئة الوالدين. لا يمكن للفئات الفرعية أن ترث متغيرات وأساليب الأعضاء في فئة الأصل التي يكون إذن الوصول الخاص بها. يمكن للفئة الفرعية تجاوز أساليب الفئة الأصل ومتغيرات العضو الاسم بنفس اسم الفئة الأصل. ومع ذلك ، لا تدعم Java الميراث المتعدد ، أي قدرة الفئة على الاستخلاص من فئات فائقة متعددة. في التنمية ، يتم تقليل علاقة الميراث ، ويتم ذلك لتقليل درجة اقتران البرنامج.
تعدد الأشكال: ينقسم تعدد الأشكال إلى تعدد الأشكال في وقت التصميم وتعدد الأشكال وقت التشغيل. على سبيل المثال ، يسمى التحميل الزائد أيضًا تعدد الأشكال في وقت التصميم. للحصول على طرق تجاوز أو ورث ، يقرر نظام وقت تشغيل Java الطريقة التي يمكن الاتصال بها بناءً على نوع الحالات التي تستدعي الطريقة ، والتي تسمى تعدد الأشكال في وقت التشغيل. باختصار ، فإن الخصائص النموذجية للتصميم الموجهة للكائنات هي الميراث والتغليف وتعدد الأشكال ، والتي هي أيضًا مفتاح شعبية الكائنات الموجهة.
طَرد
القيمة الافتراضية لحقوق الوصول لسمة الفصل في Java ليست خاصة. إذا كنت ترغب في إخفاء طريقة هذه السمة ، فيمكنك إضافة معدل خاص لتقييد الوصول إلى الفصل فقط.
بالنسبة للسمات الخاصة في الفصل ، يجب إعطاء زوج من الأساليب (getxxx ، setxxx ()) للوصول إلى سمات خاصة لضمان تشغيل السمات الخاصة وأمانها.
تغليف الطريقة ، الكشف عن الكشف ، المخفي المخفي.
الميراث جافا
الميراث هو تجريد أنواع متعددة من الأشياء ذات الخصائص الشائعة في فصل واحد.
يجب أن تستخدم الميراث في Java الكلمة الرئيسية التي تمتد ، ويسمح إصبع Java الأوسط بالميراث الفردي ، أي أن الفئة يمكن أن تحتوي فقط على فئة الوالدين.
لا يمكن أن يتم مورث المُنشئ .
تجاوز في طريقة جافا
عندما تكون هناك طرق في الفئة الفرعية التي تُرجع نفس قائمة المعلمات مثل نفس الاسم الذي يمكن الوصول إليه في الفئة الأصل ، سيتم كتابة الأساليب الموروثة من الفئة الأصل.
Super () الكلمة الرئيسية
Super () تعني أنه عندما يستدعي مُنشئ الفئة الفرعية مُنشئ الفئة الأصل ، لا يمكن أن يكون Super () إلا في الجملة الأولى من المنشئ.
تعدد الأشكال في جافا
هناك آليتان متعدد الأشكال: تعدد الأشكال في وقت التشغيل وتعدد الأشكال وقت التشغيل
1. الأسلوب الزائد: يشير التحميل الزائد إلى طرق متعددة بنفس الاسم في نفس الفئة ، ولكن هذه الطرق لها معلمات مختلفة. ، حتى تتمكن من تحديد طريقة الاتصال في وقت الترجمة ، وهو تعدد الأشكال في وقت الترجمة.
2. تجاوز الطريقة: يمكن للفئات الفرعية تجاوز طرق فئة الأصل ، وبالتالي فإن نفس الطريقة سيكون لها مظاهر مختلفة في فئة الأصل والفئات الفرعية. في لغة Java ، يمكن أن تشير المتغيرات المرجعية للفئة الأساسية ليس فقط إلى كائن المثيل للفئة الأساسية ، ولكن أيضًا إلى كائن مثيل الفئة الفرعية. وبالمثل ، يمكن أن تشير المتغيرات المرجعية في الواجهة أيضًا إلى كائن المثيل لفئة التنفيذ الخاصة به.
Public Class A {public string show (d obj) {return ("A and D") ؛} عرض السلسلة العامة (a obj) {return ("A and A") ؛}} class B public B يمتد A {prات B {} اختبار الفئة العامة {public static void main (string [] args) {a a1 = new a () ؛ a2 = new b () ؛ b b = new b () ؛ c c = new c () ؛ d d = new d () ؛ System.out.println ("1--" " + a1.show (b)) ؛ system.out.println (" 2-- " + a1.show (c)) ؛ system.out.println (" 3-- " + a1.show (d)) ؛ system.out.println (" 4-- " + a2.show (b)) ؛ a2.show (c)) ؛ system.out.println ("6--" " + a2.show (d)) ؛ system.out.println (" 7-- " + b.show (b)) ؛ system.out.println (" 8-- " }} 1-A و A2-A و A3-A و D4-B و A5-B و A6-A و D7-B و B8-B و B9-A و D عندما يشير كائن فائق الفئة إلى متغير للإشارة إلى كائن فئة فرعية ، فإن نوع الكائن المشار إليه بدلاً من نوع المتغير المشار إليه ، يحدد طريقة عضوه ، ولكن يجب تحديد الطريقة المدعو في الطبقة الفائقة ، أي الطريقة التي تغطيها الفئة الفرعية.
دعنا نستخدم مثالًا لتوضيح معنى هذه الجملة: A2.Show (B) ؛
هنا A2 هو متغير مرجعي ، من النوع A ، والذي يشير إلى كائن B. لذلك ، وفقًا للجمل أعلاه ، فهذا يعني أن هناك B لتحديد طريقة الاتصال بها ، لذلك يجب على A2.Show (B) استدعاء العرض (B OBJ) في B ، ويجب أن تكون النتيجة "B و B" ، ولكن لماذا تختلف عن النتيجة الجارية السابقة؟ هنا نتجاهل الجملة التالية "ولكن يجب تحديد الطريقة التي تسمى هنا في الفئة الفائقة" ، فهل يوجد عرض (B OBJ) في الفئة A؟ هذا غير موجود على الإطلاق! إذن هذه الجملة لا تنطبق هنا؟ فهل هذه الجملة خاطئة؟ لا! في الواقع ، تشير هذه الجملة أيضًا إلى هذه الجملة: لا يزال يتعين تأكيدها وفقًا لأولوية أساليب الاتصال في سلسلة الميراث. لهذا السبب يجد العرض (A OBJ) في الفئة A. في نفس الوقت ، نظرًا لأن B يتجاوز الطريقة ، فإنه يطلق على الأساليب في الفئة B ، وإلا فإن الأساليب في الفئة A سيتم استدعاؤها.
ما سبق هو فهم الميزات الرئيسية الثلاثة لتغليف Java ، والميراث ، وتعدد الأشكال المقدمة لك. آمل أن يكون ذلك مفيدًا لك. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر إليك في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!