ما هي الواجهة في جافا؟ دليل المبتدئين لواجهة جافا. كيفية استخدامها؟ مثال مرفق.
نشرت: 2020-10-31
لماذا ومتى تستخدم الواجهات؟
- الواجهة هي نوع مرجعي في Java.
- إنه مشابه للفصل.
- إنها مجموعة من الأساليب المجردة.
- يتم استخدامه لتحقيق التجريد الكامل.
أعتقد أن هذا هو السؤال الأول الذي قد تتوقعه في مقابلة Java. أسئلة أساسية للغاية ولكنها تستخدم على نطاق واسع في المقابلة
لا توجد إجابة مثالية لهذا السؤال وهناك عدد من الطرق للإجابة على هذا السؤال. هل يمكن للمحاور أن يبحث عن نهج عملي لهذه الأسئلة؟ المستطاع.
ثم لنبدأ بالتعريف الأساسي لواجهة Java
سوف نتطرق إلى نفس الشيء مع أمثلة متعددة.
- ما هي الواجهة في جافا؟
- ما هي الواجهة في جافا مع مثال الوقت الحقيقي؟
- لماذا استخدام واجهة في جافا
- واجهة تصميم جافا
- أسئلة المقابلة الأكثر شيوعًا على الواجهة
أساسيات الواجهة:

-
interface
هي مجرد عقد ، ووصف للسلوك الذي سيكون لفئة التنفيذ. يضمن الفصل المنفذ أنه سيكون لديه هذه الأساليب التي يمكن استخدامها فيها. إنه في الأساس عقد أو وعد يجب على الفصل أن يقطعه. - ماذا لو كانت جميع التطبيقات المختلفة في مشاريعك تشترك في نفس تواقيع الطريقة؟ تعمل الواجهة بشكل أفضل في هذه الحالة.
- في المرحلة اللاحقة بعد تنفيذ المشروع الرئيسي ، دعنا نرى ما إذا كنت قد نفذت تعريفات الواجهة إلى حوالي 50 مكانًا ، فماذا لو قمت بتغيير الواجهة؟ يجب عليك إجراء تعديل على جميع الأماكن الخمسين في مشاريعك.
- يُنصح بقضاء المزيد من الوقت في تحديد الواجهة أثناء مرحلة التصميم بدلاً من تغييرها في مرحلة لاحقة
- تتكون الواجهة من متغيرات
singleton
(public static final
) وطرقpublic abstract
. نفضل عادةً الواجهة في الوقت الفعلي عندما نعرف ما يجب فعله ولكن لا نعرف كيف نفعل. لا يمكن أن تحتوي الواجهة على حقول مثيل. - يجب أن توفر الفئات التي تنفذ الواجهة تعريف الطريقة لجميع الطرق الموجودة.
- قد تقوم الفئة بتنفيذ عدة واجهات.
- يمكن إضافة تطبيق واجهة إلى أي فئة طرف ثالث موجودة.
- يمكن أن تحتوي الواجهة على أي عدد من الأساليب.
- في Java لا يمكنك إنشاء واجهة.
- لا تحتوي الواجهة على أي مُنشئين.
- لا يتم توسيع الواجهة بواسطة فئة ؛ يتم تنفيذه بواسطة فئة.
- يمكن للواجهة أن تمد واجهات متعددة.
أمثلة على الواجهة:
نصيحة 1.
قم بإنشاء واجهة CrunchifyDatabaseInterface.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
package crunchify . com . java . tutorials ; import java . util . Map ; import java . util . UUID ; /** * @author Crunchify.com * What Is an Interface in Java? Beginners Guide to Java Interface. */ public interface CrunchifyDatabaseInterface { // Basic Database CRUD Operations // Insert boolean insertCrunchifyRecord ( UUID id , String name , String address , String phone , String zip , String comments ) ; // Delete public boolean deleteCrunchifyRecord ( UUID id ) ; // Get public Map < String , String > getListOfAllCrunchifyRecords ( ) ; // Update boolean updateCrunchifyRecord ( UUID id , Map < String , String > records ) ; } |
نصيحة 2.
تنفيذ واجهة CrunchifyDatabaseOracleImpl.java
عندما تقوم أولاً بتنفيذ واجهة ، فإن Eclipse سيظهر لك إضافة طرق غير مطبقة.

ما عليك سوى النقر على " Add unimplemented methods
" وستكون فئة IMPL جاهزة مع أبتر Auto-generated method stub
.
تلميح 3. طريقة الضمنية الفعلية.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
package crunchify . com . java . tutorials ; import java . util . Map ; import java . util . UUID ; /** * @author Crunchify.com * What Is an Interface in Java? Beginners Guide to Java Interface. */ public class CrunchifyDatabaseOracleImpl implements CrunchifyDatabaseInterface { // Override: Indicates that a method declaration is intended to override a method declaration in a supertype. // If a method is annotated with this annotation type compilers are required to generate an error message unless at least one of the following conditions hold: // The method does override or implement a method declared in a supertype. // The method has a signature that is override-equivalent to that of any public method declared in Object. @Override public boolean insertCrunchifyRecord ( UUID id , String name , String address , String phone , String zip , String comments ) { // TODO Provide your actual implementation here based on your need specific to Oracle return false ; } // UUID(): A class that represents an immutable universally unique identifier (UUID). // A UUID represents a 128-bit value. // There exist different variants of these global identifiers. // The methods of this class are for manipulating the Leach-Salz variant, although the constructors allow the creation of any variant of UUID @Override public boolean deleteCrunchifyRecord ( UUID id ) { // TODO Provide your actual implementation here based on your need specific to Oracle return false ; } // Map(): An object that maps keys to values. A map cannot contain duplicate keys; each key can map to at most one value. // This interface takes the place of the Dictionary class, which was a totally abstract class rather than an interface. @Override public Map < String , String > getListOfAllCrunchifyRecords ( ) { // TODO Provide your actual implementation here based on your need specific to Oracle return null ; } @Override public boolean updateCrunchifyRecord ( UUID id , Map < String , String > records ) { // TODO Provide your actual implementation here based on your need specific to Oracle return false ; } } |
نصيحة 4.
بطريقة مماثلة يمكنك استخدام نفس الواجهة لتنفيذ عمليات مختلفة خاصة بقاعدة البيانات. مثل ، DB2 ، MySQL ، MongoDB ، Cassandra DB ، إلخ.

ماذا بعد؟
في عملية كتابة البرنامج التعليمي على فئة الخلاصة ثم درس آخر يوضح بوضوح الفرق بين فئة الملخص والواجهة.