أجهزة الكمبيوتربرمجة

جافا الوراثة: وصف وطرق

بدءا من ظهور لغة جافا شهدت الكثير من التغييرات، التي جلبت بلا شك لحظات إيجابية في وظائفه. واحدة من هذه التغييرات الهامة هو مقدمة جاوة عام أو التعميمات. هذه الوظيفة ليس فقط جعل اللغة أكثر مرونة وتنوعا، ولكن أيضا أكثر أمانا من حيث جلب أنواع البيانات.

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

جافا الوراثة: الوصف والمثال

دعونا ننظر في مثال بسيط لتطبيق التعميم إلى الفصول العادية في الشكل أدناه. ثم انتقل إلى دراسة مفصلة من كل الخفايا والفروق الدقيقة في جاوة عام.

الالتفات إلى الطريقة التي يحدث تعريف فئة زوج. مباشرة بعد اسم الفئة، وأقواس الزاوية المفتوحة، والتي أشارت الرسالة T. هو نوع من حشو، والتي هي في عملية إنشاء مثيل من هذه الفئة سوف تحل محلها نوع معين. يبدو كما يلي: زوج <صحيح> الكائنات = جديد زوج <صحيح> (). وتجدر الإشارة إلى أنه بدلا من T يمكن تحديد أي حرف، ولكن كقاعدة عامة، استخدام T، V أو E.

ملاحظة: بدءا من النسخة الثامنة من جاوة، تحديد نوع الهدف عندما يعلن أقواس زاوية الإشارة في منشئ يمكن تركها فارغة. هكذا مثلا يمكن إعادة كتابة على النحو الوارد أعلاه: زوج <صحيح> الكائنات = جديد زوج <> ().

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

وفقا لمنطق الحجج وfirstItem secondItem، يجب أن يكون أيضا من نوع عدد صحيح أو فئة فرعية يشار إلى منشئ المناسب. إذا حاولت نقل نوع البيانات التي تختلف عن ما تم تحديده عند إنشاء كائن، فإن المترجم لا تدع هذا خطأ. وهكذا، فإن منشئ الحجج عندما كائن ستكون على النحو التالي: زوج <صحيح> الكائنات = جديد زوج <> (جديد عدد صحيح (1)، جديد عدد صحيح (2)). الأمر نفسه ينطبق على الحجج والأساليب setFirst setSecond. وكما كنت قد خمنت ربما، وأساليب getFirst getSecond وسيعود قيمة من نوع عدد صحيح.

معمم مع أنواع الفئة العديد من المعلمات

في فصول معممة ويمكن أيضا أن يعلن معلمات متعددة من النوع التي تم تعيينها في أقواس زاوية بفاصلة. إعادة تصميم من قبل حال تعرض الطبقة زوج أدناه.

كما ترون، عند إنشاء مثيل من هذه الفئة في أقواس زاوية يجب أن تشير إلى نفس العدد من أنواع كمعلمات. إذا كنت معتادا على هذا النوع من بنية بيانات باعتباره الخريطة، يمكنك أن ترى أنه يستخدم بالضبط نفس المبدأ. هناك، تحدد الوسيطة الأولى نوع المفتاح، والثانية - نوع القيمة. وتجدر الإشارة إلى أن أنواع تنتقل عندما يكون الحجج الكائن قد تتداخل. على سبيل المثال، مثيل فئة زوج الإعلان التالي هو الصحيح تماما: زوج <سلسلة، سلسلة> الكائنات.

بعض ملامح التعميمات

قبل المضي قدما، وتجدر الإشارة إلى أن مترجم جافا لا يخلق إصدارات مختلفة من زوج الصف. في الواقع، في عملية تجميع نوع المعمم على جميع المعلومات تم حذف. بدلا من ذلك، يمكنك إحضار الأنواع المناسبة، وخلق نسخة خاصة من الطبقة زوج. ومع ذلك، في البرنامج لا يزال هناك سوى إصدار عام للفئة. وتسمى هذه العملية في جاوة نوع التنظيف عام.

ملاحظة نقطة مهمة. روابط لإصدارات مختلفة من نفس الفئة العامة جافا لا يمكن أن نشير إلى واحد ونفس الكائن. وهذا هو، لنفترض أن لدينا اثنين من الروابط: زوج <صحيح> obj1 وزوج <مزدوج> obj2. ونتيجة لذلك، في خط obj1 = obj2 خطأ. على الرغم من كل المتغيرات من نوع الزوج ، والكائنات التي تشير إليها، تختلف. هذا هو مثال ساطع على أنواع الأمن في جاوة عام.

القيود المفروضة على الطبقات العامة

ومن المهم أن نعرف أن التعميمات يمكن تطبيقه فقط على مرجع أنواع، وهذا هو لتمرير المعلمات العامة حجة جافا الدرجة يجب أن يكون نوع فئة. هذه الأنواع البسيطة، مثل، على سبيل المثال، مزدوجة أو طويلة، لا يمكن نقلها. وبعبارة أخرى، لا يسمح تعريف فئة زوج السطر التالي: زوج <كثافة> الكائنات. ومع ذلك، هذا القيد ليست مشكلة خطيرة، كما أن هناك المقابلة فئة Java المجمع لكل نوع بدائي. بالمعنى الدقيق للكلمة، وإذا كان الزوج درجة التي تريد أن تغلف عدد صحيح ومنطقي قيمة avtoupakovka يفعل كل شيء بالنسبة لك: زوج <صحيح، منطقية> الكائنات = جديد زوج <> (25، صحيح).

قيدا خطيرا آخر هو عدم القدرة على إنشاء مثيل من نوع المعلمة. على سبيل المثال، فإن السطر التالي يسبب خطأ الترجمة: T = T أولا الجديد (). وهذا واضح، لأنك لا تعرف مسبقا ما إذا كانت حجة مرت فئة كاملة أو مجردة، أو حتى واجهة. الشيء نفسه ينطبق على خلق المصفوفات.

أنواع محدودة

في كثير من الأحيان هناك حالات عندما يكون ذلك ضروريا للحد من قائمة الأنواع التي يمكن أن تنتقل كحجة لجافا فئة عامة. دعونا نفترض أن في زوج طبقتنا نريد أن تغلف فقط القيم العددية لمزيد من العمليات الحسابية عليها. لذلك نحن بحاجة إلى تحديد الحد الأعلى من نوع المعلمة. ويتحقق ذلك عن طريق الإعلانات الطبقة المتفوقة ورثت كل الحجج مرت في أقواس زاوية. وسوف تبدو كما يلي: فئة زوج . بهذه الطريقة، يجد المترجم أنه بدلا من T المعلمة يمكن أن تكون بديلا أو فئة الرقم أو واحدة من الفئات الفرعية.

هذا هو حفل استقبال مشترك. وغالبا ما تستخدم هذه القيود لتوفير المعلمات اكتب التوافق في واحدة ونفس الفئة. النظر في المثال في الصف زوج دينا: فئة زوج . هنا نقول للمترجم أن نوع T يمكن أن يكون تعسفيا، ونوع V يجب أن يكون إما T نوع أو واحدة من الفئات الفرعية.

الحد من "القاع" هو بالضبط بنفس الطريقة، ولكن بدلا من كلمة يمتد لتوضيح كلمة فائقة. وتقول تلك الفئة تصنف زوج أنه بدلا من T قد تكون بديلا أو ArrayList، أو أي فئة أو واجهة أن يرث.

طرق جافا العامة والصانعين

في جاوة، ويمكن تطبيق التعميمات ليس فقط للطبقات، ولكن أيضا الأساليب. على سبيل المثال، يمكن أن يتم تعريف أسلوب عام في الفصول الدراسية العادية.

كما رأينا في الشكل أعلاه، وطريقة الإعلان المعمم ليس صفقة كبيرة. بما فيه الكفاية قبل نوع الإرجاع من طريقة لوضع أقواس زاوية وتحديد المعلمات نوع فيها.

وإذا تم كل شيء على نحو مماثل لمنشئ:

أقواس زاوية في هذه الحالة وضعت قبل اسم المصمم، لأنه لا يوجد لديه قيمة الإرجاع. ونتيجة لكلا البرنامجين على النحو التالي:

عدد صحيح

سلسلة

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ar.delachieve.com. Theme powered by WordPress.