Java'da Arayüz nedir? Java Arayüzü için Başlangıç Kılavuzu. Bu nasıl kullanılır? Örnek Eklidir.
Yayınlanan: 2020-10-31
Arayüzler neden ve ne zaman kullanılır?
- Arayüz, Java'da bir referans türüdür.
- Sınıfa benzer.
- Soyut yöntemlerin bir koleksiyonudur.
- Toplam soyutlama elde etmek için kullanılır.
Java Röportajında bekleyebileceğiniz ilk sorunun bu olduğuna inanıyorum. Çok basit sorular ama mülakatta yaygın olarak kullanılıyor
Bunun için mükemmel bir cevap yok ve bu soruyu cevaplamanın birçok yolu var. Bu sorulara pratik bir yaklaşım arayan görüşmeciniz olabilir mi? Olası.
O zaman bir Java Arayüzünün temel tanımıyla başlayalım
Aynı konuyu birden fazla örnekle ele alacağız.
- Java'da Arayüz nedir?
- Java'da gerçek zamanlı örnekle bir arayüz nedir?
- Java'da neden bir arayüz kullanılır?
- Arayüz Tasarımı Java
- Arayüzle ilgili en yaygın mülakat soruları
Arayüz temelleri:

-
interface
sadece bir sözleşmedir, uygulayan sınıfın sahip olacağı davranışın bir açıklamasıdır. Uygulama sınıfı, üzerinde kullanılabilecek bu yöntemlere sahip olmasını sağlar. Temel olarak, sınıfın yapması gereken bir sözleşme veya sözdür. - Ya projelerinizde tüm çeşitli uygulamalar aynı yöntem imzalarını paylaşıyorsa? Arayüz bu durumda en iyi şekilde çalışır.
- Büyük proje uygulamasından sonraki aşamada, arayüz tanımlarını ~50 yere uygulayıp uygulamadığınızı görelim, arayüzü değiştirirseniz ne olur? Projelerinizde 50 yerin tamamında değişiklik yapmanız gerekiyor.
- Tasarım aşamasında Arayüzü tanımlamak için biraz daha zaman harcamanız, daha sonraki aşamada değiştirmeniz önerilir.
- Bir arabirim,
singleton
değişkenlerden (public static final
) vepublic abstract
yöntemlerden oluşur. Normalde ne yapacağımızı bildiğimiz halde nasıl yapacağımızı bilmediğimizde gerçek zamanlı olarak arayüzü tercih ederiz. Bir arayüz, örnek alanları içeremez. - Arabirimi uygulayan sınıflar, mevcut tüm yöntemler için yöntem tanımını sağlamalıdır.
- Bir Sınıf birkaç arabirim uygulayabilir.
- Mevcut herhangi bir üçüncü taraf sınıfına bir arayüz uygulaması eklenebilir.
- Bir arabirim herhangi bir sayıda yöntem içerebilir.
- Java'da bir arabirimin örneğini oluşturamazsınız.
- Bir Arayüz herhangi bir kurucu içermez.
- Bir arabirim bir sınıf tarafından genişletilmez; bir sınıf tarafından uygulanır.
- Bir arabirim, birden çok arabirimi genişletebilir.
Arayüz Örnekleri:
1. ipucu
Arayüz Oluştur 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. ipucu
Arabirim CrunchifyDatabaseOracleImpl.java
Bir arayüzü ilk uyguladığınızda, Eclipse, uygulanmamış yöntemler eklediğinizi gösterecektir.

Sadece “Uygulanmamış Add unimplemented methods
”ye tıklayın ve IMPL sınıfınız Auto-generated method stub
ile hazır olmalıdır.
İpucu 3. Gerçek Uygulama Yöntemi.
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. ipucu
Benzer şekilde, farklı Veritabanına özgü işlemleri uygulamak için aynı Arabirimi kullanabilirsiniz. DB2, MySQL, MongoDB, Cassandra DB vb.

Sıradaki ne?
Soyut Sınıfta Öğretici ve ardından Soyut Sınıf ve Arayüz Arasındaki Farkı açıkça gösteren başka bir öğretici yazma sürecinde.