JavaRush /مدونة جافا /Random-AR /واجهة في جافا
vinsler
مستوى

واجهة في جافا

نشرت في المجموعة
أنا راوي قصص سيء إذا لم يكن لدي هدف شرح شيء غير مفهوم لشخص لديه طلب محدد، حتى أفهم الأشياء البسيطة، ولشيء واحد سأكتب عنه هنا. لا أتبع مثال تعليم JavaRush المتمثل في طرح سؤال أولاً ثم إخبارك بكيفية القيام بذلك. أنا من أنصار الإخبار أولاً، ثم السؤال، كما هو الحال في الإخبار، العرض أولاً، ثم الشرح.
واجهة في جافا - 1
BS: الأفعال == السلوك، خذها كمرادفات، الأفعال ببساطة أكثر فهمًا بشكل صحيح، فهي دائمًا شيء نشط، وقد لا يظهر السلوك أي شيء.

واجهة - واجهة

ما هذا؟ مثال على قائمة الواجهة (مع الأدوية العامة):
public interface Store<T, ID> {
    void add(T t);
    void update(T t, ID i);
    void delete(ID i);
    T findOne(ID i);
    List<T> findAll();
}
الواجهة العامة (من CRUD: الإنشاء والقراءة والتحديث والحذف). لا تنزعج، كل شيء بسيط للغاية. تعني هذه الواجهة أن العمل مع العديد من قواعد البيانات يعتمد على المبدأ التالي: تحتاج إلى إضافة سجل وتحديث سجل وحذف جميع السجلات والعثور عليها. سترى هذا 100 مرة أخرى وستكتب نفس الواجهة تقريبًا بنفس عدد المرات. تم تعيينه للعامة لأنه يجب تنفيذه بواسطة الفصل. ماذا يعني أن يتم تنفيذها من قبل الفصل ؟ كل شيء بسيط للغاية: يجب أن يصف جميع طرق الواجهة. أبسط مثال للتنفيذ في الفصل:
void add (T t) {
	bookstore.add(t);
}
بدلاً من T t، سيتم استبدال نوع عام معين. باختصار، هذا هو نوع المتغير، ولهذا السبب يُشار إليه غالبًا بالرمز T = النوع. في مثالنا، دعنا نقول أنه يمكن أن يكون مثل هذا:
void add (Book book) {
	bookstore.add(book);
}
وبطبيعة الحال، بدلاً من Book book، يمكنك استبدال أي متغير تحتاجه لتنفيذك. لفهم ذلك، يمكنك أن تتخيل نظريًا أن T = Object، وبما أن كل شيء في Java هو كائن، يمكنك أيضًا تحديد أي من فئاتك/متغيراتك هناك. ستظهر المشكلة الوحيدة لاحقًا - الاستثناءات إذا كان الفصل صفرًا، وما إلى ذلك. بكلماته الخاصة، فهو عبارة عن بنية برنامجية معينة تحدد العلاقات بين الكائنات عن طريق تقسيمها إلى أجزاء سلوكية معينة. الغرض من الواجهة هو تحديد الوظيفة للتنفيذ بواسطة الفصل. وهذا يعني وصف لتوقيعات الطريقة. يوجد داخل الواجهة أسماء للطرق التي تُرجع القيم وتُدخلها، وهذا كل شيء. حسنًا، لا يزال بإمكانك تعيين بعض المتغيرات هناك، لكنها تصبح على الفور نهائية عامة ضمنيًا، ويمكن الوصول إليها من أي جزء من البرنامج. تصف الواجهة الإجراءات، وبالتالي يتم تضمين هذه الإجراءات نفسها فيها، أي. وظائف أو أساليب. لماذا هذا ضروري؟ ما الذي يبسطه هذا أو ما هي المزايا التي يوفرها؟ تبسيط وصف التصرفات والسلوك. نحن نقول ما يجب القيام به، ولكن كل فئة تنفذ كيفية القيام بذلك بنفسها. توفير الوقت في المشاريع الكبيرة. يتم إنشاء الواجهات في المواقف التي نعلم فيها أننا بحاجة إلى أداء بعض المهام، ولكن قد تختلف كيفية القيام بذلك. تصف الواجهة أسماء الإجراءات - وهذا ببساطة اتجاه لبعض التجريد. على الرغم من أنه قد تكون هناك أيضًا واجهات بدون طرق وحقول، مثل العلامات مثل Cloneable وRemote وما إلى ذلك. لنأخذ مثال السيارة المفضل لدى الجميع. ستصف الواجهة الموجودة فيه الإجراءات المحتملة للسيارة، مثل تدوير عجلة القيادة أو اتجاه الحركة، وزيادة السرعة، والبنزين المتبقي، وما إلى ذلك. وهذا يعني أن نفس الإجراءات التي يمكن أن تقوم بها أي سيارة على الإطلاق. بمعنى آخر، نحن ننزل إلى غابة التدهور إلى أدنى مستوى من إبداع السيارة الأولى وبأدمغتنا نكتشف كيف تم إنشاؤها وما تحتويه. وبطبيعة الحال، نحن نصف هذا بشكل تجريدي وفقط للأفعال. ماذا كانت السيارة الأولى؟ هل كانت هناك عجلة قيادة؟ لقد كان، مما يعني أنه كان يدور في مكان ما، في اتجاه حركة/عجلة القيادة. هل كانت هناك عجلات؟ نعم، هذا يعني أنني كنت أقود بسرعة معينة، أي تغير في السرعة. هذه هي الواجهة بأكملها. ولكن بشكل عام، يتم إنشاء واجهات لبعض تنفيذ إجراءات معينة. أولئك. نحن نكتب برنامجًا لبرامج أكثر تحديدًا من أي شيء آخر يمكنك التفكير فيه. لذلك، ستحتوي الواجهات نفسها على أساليب أكثر وضوحًا وتحديدًا. بالطبع ستكون مجردة قدر الإمكان. يمكن وراثة الواجهات من بعضها البعض كفئات.
interface MyInterface extends NotMyinterface;
يتم تنفيذ الواجهات في الفصول الدراسية. يمكنك تنفيذ أي عدد تريده من الواجهات. على عكس الميراث، يرث من واحد فقط.
class NewClass extends OldClass implements MyInterface, NotMyinterface;
أولئك. لقد توصلنا إلى بعض الإجراءات، وأعطيناهم أسماء، وأدخلنا البيانات، وأرجعنا البيانات، وكتبنا كل هذا في الواجهة، ثم أنشأنا فصلًا وأضفنا واجهتنا إلى هذا الفصل، أي. نفذت واجهتنا في هذا الفصل. علاوة على ذلك، يجب أن يكون لجميع الأساليب/الوظائف الموضحة في الواجهة تطبيق. يمكن القيام بذلك مباشرة في الواجهة نفسها عن طريق إضافة الكلمة الافتراضية قبل الطريقة وكتابة التنفيذ مباشرة في الطريقة، مثل الفصل. أصبح هذا ممكنًا مع الإصدار 8 من Java. ويمكن أيضًا القيام بذلك في الفصل الذي سيقوم بتنفيذ هذه الواجهة. حسنًا، لقد كتبنا الواجهة، ونفذناها في الفصل، وقمنا بتنفيذ التنفيذ في الفصل، ويمكننا تشغيلها واختبارها. يمكنك أيضًا القراءة في الواجهات حول:
  • الأساليب الثابتة.
  • أساليب خاصة. (تكرار الكود)
  • المتغيرات/الثوابت.
  • واجهات متداخلة.
ولكن من الأفضل أن تفعل ذلك لاحقًا، ومن المضر أيضًا أن تملأ رأسك كثيرًا. سؤال مثير للاهتمام، ما هي فولفو؟ فئة أو واجهة؟
line1: Volvo v = new VolvoV2();
line2: Volvo v = new VolvoV3();
بالإضافة إلى الواجهات، من المفيد الاستمرار في الحديث عن الفئات والفئات المجردة. ربما في وقت لاحق، عندما يكون لدي بضع ساعات إضافية حرة. ))) ملاحظة: يا رفاق، أطلب كل الانتقادات تحت المنشور أو في المساء، وأنا أفهم تمامًا أن كل شخص لديه))) وأنا مهتم دائمًا بسماعها، لأن هذا سبب لتصبح أفضل قليلاً و مرة أخرى الاستمرار في المضي قدما. مع ذلك، شكرًا جزيلاً لكم جميعًا ونتمنى لك حظًا سعيدًا في البرمجة. )))
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION