ما هو علم الوراثة في جافا؟ - دليل المبتدئين



ستقدم هذه المقالة حول Generics in Java نظرة ثاقبة مختصرة حول ماهية أنواع جافا الوراثية وأنواعها المختلفة إلى جانب أمثلة.

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

فيما يلي قائمة الموضوعات التي سأغطيها في هذه المقالة:





ما هو علم الوراثة في جافا؟

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

الآن بعد أن عرفت ما هو Generics في Java ، دعنا ننتقل إلى أبعد من ذلك ونفهم لماذا تحتاج إلى Java Generics.



لماذا Java Generics؟

إذا نظرت إلى فئات ، ثم ستلاحظ أن معظم الفئات تأخذ معلمة / وسيطة من النوع Object. في الأساس ، في هذا النموذج ، يمكنهم أخذ أي نوع Java كوسيطة وإرجاع نفس الكائن أو الوسيطة. هم في الأساس غير متجانسة أي ليس من نوع مماثل.

الهيكل التنظيمي - علم الوراثة في Java - Edureka

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



الآن بعد أن اكتسبت بعض الأفكار حول Generics ، دعنا نمضي قدمًا ونلقي نظرة على الطرق المختلفة لكيفية ذلكيمكن تطبيق علم الوراثة على الكود المصدري.

فئات التخزين في c ++

أنواع Java Generics

هناك 4 طرق مختلفة يمكن من خلالها تطبيق Generics في Java وهي كالتالي:

  1. فئة النوع العام
  2. واجهة عامة
  3. طريقة عامة
  4. منشئ عام

الآن دعونا نفهم كيف يمكن تطبيق الأدوية الجنسية على فئة الكتابة بعمق.

1. فئة النوع العام

يُقال أن الفئة تكون عامة إذا كانت تعلن عن متغير نوع واحد أو أكثر. تُعرف أنواع المتغيرات هذه باسم معلمات النوع لـ . دعونا نفهم هذا بمساعدة مثال. في المثال أدناه ، سوف أقوم بإنشاء فئة بخاصية واحدة x ونوع الخاصية كائن.

class Genericclass {private Object x public void set (Object x) {this.x = x} public Object get () {return x}}

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

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

class Genericclass {// T تعني 'Type' private T x public void set (T x) {this.x = x} public T get () {return x}}

يمكنك الآن التأكد من أنه لن يتم إساءة استخدام الفصل مع أنواع خاطئة. مثال بسيط على' عام 'يبدو كما هو موضح أدناه:

مثيل Genericclass = new Genericclass () example.set ('Edureka') example.set (10) // سيؤدي هذا إلى زيادة خطأ وقت الترجمة

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

2. واجهة عامة

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

// واجهة تعريف الواجهة العامة GenericInterface {T2 PerformExecution (T1 x) T1 ReverseExecution (T2 x)} // فئة تنفذ فئة الواجهة العامة Genericclass تنفذ GenericInterface {public Integer PerformExecution (String x) {// Implementation code} public String ReverseExecution ( عدد صحيح س) {// كود التنفيذ}}

آمل أن تكون قادرًا على فهم كيف يمكن تطبيق Generics على فئة النوع والواجهات. دعنا الآن نتعمق في هذه المقالة ونفهم كيف أنها مفيدة للطرق والمنشئات.

3. طرق عامة

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

دعونا نفهم هذا بمثال. يوجد أدناه مثال على طريقة عامة يمكن استخدامها للعثور على جميع تكرارات معلمات النوع في قائمة المتغيرات.

public static int countAllOccurrences (T [] list، T element) {int count = 0 if (element == null) {(T listElement: list) if (listElement == null) count ++} else {for (T listElement: list ) إذا (element.equals (listElement)) count ++} return count}

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

هذا القياس مشابه للمنشئ أيضًا. لنأخذ مثالاً للمنشئ العام ونفهم كيف يعمل.

4. منشئ عام

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

فئة البعد {خاص T طول خاص T عرض خاص T ارتفاع // مُنشئ عام عام البعد (طول T ، عرض T ، ارتفاع T) {super () this.length = length this.width = width this.height = height}}

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

ما هو الإجراء في SQL

الآن دعنا ننتقل إلى أبعد من ذلك ونلقي نظرة على مزايا Generics في Java.

مزايا علم الوراثة في جافا

1. رمز إعادة الاستخدام

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

2. إرسال أنواع فردية غير مطلوب

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

3. تطبيق خوارزمية غير عامة

يمكنه حساب الخوارزميات التي تعمل على أنواع مختلفة من العناصر التي تعتبر آمنة أيضًا.

كان هذا كله يتعلق بمزايا Java Generics. بهذا نصل إلى نهاية هذا المقال عن Generics in Java. آمل أن تكون قد وجدتها مفيدة وساعدتك في فهم Java Generics.

تفحص ال من Edureka ، وهي شركة تعليمية موثوقة عبر الإنترنت مع شبكة تضم أكثر من 250000 متعلم راضٍ منتشرين في جميع أنحاء العالم. نحن هنا لمساعدتك في كل خطوة في رحلتك ، لكي تصبح بجانب أسئلة مقابلة جافا هذه ، توصلنا إلى منهج مصمم للطلاب والمهنيين الذين يريدون أن يصبحوا مطور جافا. تم تصميم الدورة التدريبية لمنحك السبق في برمجة Java وتدريبك على مفاهيم Java الأساسية والمتقدمة جنبًا إلى جنب مع العديد من أطر Java مثل Hibernate & Spring.

لديك سؤال لنا؟ يرجى ذكر ذلك في قسم التعليقات في هذا 'Generics in Java ' مقالة - سلعة وسنعاود الاتصال بك في أقرب وقت ممكن.