Tavsiye, 2024

Editörün Seçimi

Java'da Sınıf ve Arayüz Arasındaki Fark

Hem sınıf hem de Arayüz yeni referans türleri oluşturmak için kullanılır. Sınıf, alanlar üzerinde çalışan alanlar ve yöntemler topluluğudur. Arayüz tamamen soyut yöntemlere sahiptir, yani hiç kimseyle olmayan yöntemler. Arabirim, sözdizimsel olarak sınıfa benzer, ancak bir sınıfın başlatılabileceği sınıf ve arabirim arasında büyük bir fark vardır, ancak bir arabirim hiçbir zaman başlatılamaz. Bu yüzden, aşağıda gösterilen bir karşılaştırma çizelgesinin yardımı ile bir sınıf ve arayüz arasında biraz daha fark öğrenelim.

Karşılaştırma Tablosu

Karşılaştırma için temelSınıfarayüzey
TemelNesneleri oluşturmak için bir sınıf başlatılır.Bir arayüz asla başlatılamaz, çünkü metotlar çağırmak için herhangi bir işlem yapamaz.
Kelimelersınıfarayüzey
Erişim belirteciBir sınıfın üyeleri özel, herkese açık veya korumalı olabilir.Bir arayüzün üyeleri her zaman herkese açıktır.
YöntemlerBir sınıfın yöntemleri, belirli bir eylemi gerçekleştirmek için tanımlanır.Arayüzdeki yöntemler tamamen soyut.
Uygulamak / uzatınBir sınıf, herhangi bir sayıda arayüzü uygulayabilir ve yalnızca bir sınıfı genişletebilir.Bir arayüz, birden fazla arayüzü genişletebilir, ancak herhangi bir arayüzü uygulayamaz.
inşaatçıBir sınıf, değişkenleri başlatmak için yapıcılara sahip olabilir.Arabirim hiçbir zaman bir kurucuya sahip olamaz, çünkü başlatılması zor bir değişken yoktur.

Sınıfın Tanımı

Bir sınıf, bir java programını uygulayamayacağınız sınıflar olmadan Java programlamanın en önemli özelliğidir. Bir sınıf referans türleri yaratır ve bu referans türleri nesneler oluşturmak için kullanılır. Bir sınıfın bir imzası ve bir vücudu vardır. Bir sınıfın imzası, sınıfın başka bir sınıfa miras aldığını bildiren sınıfın adı ve bilgisine sahiptir. Bir sınıfın gövdesinde bu alanlarda çalışan alanlar ve yöntemler vardır. Bir anahtar kelime sınıfı kullanılarak bir Sınıf oluşturulur. Bir sınıfı nasıl ilan edeceğimizi görmemize izin verin.

 sınıf class_name {/ * fields ... Methods * /} 

Bir sınıf başlatıldığında, oluşturulan her nesne, alanların bir kopyasını ve bunlarla birlikte yöntemlerini içerir. Bir sınıf içinde bildirilen alanlar ve üyeler statik veya statik olmayabilir. Statik üyelerin değeri her nesne için sabittir, oysa statik olmayan üyeler gereksinimlerine göre farklı olarak her nesne tarafından başlatılır.

Bir sınıfın üyeleri, üyelerin kullanıcıya veya alt sınıflara görünürlüğüne ve erişilebilirliğine karar veren erişim belirtecine sahiptir. Erişim belirleyicileri herkese açık, özel ve korumalı. Bir sınıf, bir alt sınıftaki (kalıtsal bir sınıf) üyelerin bir alt sınıftaki (kalıtımsal sınıf) görünürlüğüne karar verecek olan erişim belirteci kullanılarak başka bir sınıf tarafından miras alınabilir. Böylece sınıf, Nesne Yönelimli programlamada veri gizleme ve kapsülleme kavramını yerine getirir.

Arabirimin Tanımı

Bir arayüz ayrıca Java'da tanımlanan referans türleri arasındadır. Arabirimin önemi, Java'da bir sınıfın yalnızca tek bir sınıfa miras alabilmesidir. Bu kısıtlamayı önlemek için, Java tasarımcıları bir arayüz kavramı ortaya koydu. Arabirim, bir sınıfa sözdizimsel olarak benzer, ancak alan bildiriminde yoksundur ve bir arabirim içindeki yöntemlerde herhangi bir uygulama yoktur. Bir anahtar kelime arayüzü kullanılarak bir arayüz bildirildi. Bir arayüzün bildirimini görüntüleyelim.

 interface interface_name {type var_name = değer; type1 yöntemi (parametre listesi); type2 yöntemi (parametre listesi); . . } 

Arabirim, üzerinde çalışılacak alanlardan yoksun olduğundan, içinde bildirilen herhangi bir yöntemi tanımlamaz. Bir arabirim içindeki herhangi bir yöntem hiçbir eylem gerçekleştirmediğinden, bir arabirim hiçbir zaman başlatılamaz. Arabirimin herhangi bir alan üyesi varsa, bildirimi sırasında başlatılmalıdır. Arabirim, başlangıçta almak için alan üyelerinde bulunmadığından hiçbir zaman kurucu içermez. Dolayısıyla, bir arayüz sadece bir sınıfın yapması gereken yerine ne yapması gerektiğini tanımlar.

Bir kez oluşturulmuş olan bir arayüz, bir anahtar kelime uygulaması kullanan herhangi bir sayıda sınıf tarafından uygulanabilir . Ancak bir arabirim uygulayan sınıflar bir arabirim içindeki tüm yöntemleri tanımlamalıdır. Bir arabirim ayrıca extend anahtar sözcüğünü kullanarak başka bir arabirim devralabilir. Bir sınıf başka bir arayüzü genişleten bir arayüz uygularsa. Daha sonra bir sınıf, bir zincirde görünen arayüzlerin yöntemlerini tanımlamalıdır. Bir arabirim içindeki yöntemlere, bunları uygulayan sınıflar tarafından erişilmesi gerektiği için her zaman halka açık olması gerekir.

Java'da Sınıf ve Arayüz Arasındaki Temel Farklılıklar

  1. Bir nesne, nesneler yaratarak başlatılabilir. Bir arabirim içinde bildirilen yöntemler soyut olduğundan ve herhangi bir eylem gerçekleştirmediğinden, arabirim hiçbir zaman başlatılmaz, dolayısıyla herhangi bir arabirimin başlatılmasının bir yolu yoktur.
  2. Anahtar kelime sınıfı kullanılarak bir sınıf bildirilir. Aynı şekilde, bir anahtar kelime arayüzü kullanılarak bir arayüz oluşturulur.
  3. Bir sınıfın üyeleri, kamu, özel, korumalı gibi erişim belirticisine sahip olabilir. Ancak, bir arayüzün üyeleri, bunları uygulayan sınıflar tarafından erişilmesi gerektiği için her zaman herkese açıktır.
  4. Bir sınıf içindeki yöntemler, sınıfta bildirilen alanlarda bir eylem gerçekleştirmek için tanımlanır. Arabirim alanların bildirimlerinde eksik olduğundan, bir arabirim içindeki yöntemler tamamen soyut.
  5. Bir sınıf, herhangi bir sayıda arayüzü uygulayabilir, ancak yalnızca bir süper sınıfı genişletebilir. Bir arayüz herhangi bir sayıda arayüzü genişletebilir, ancak herhangi bir arayüzü uygulayamaz.
  6. Bir sınıf değişkeni başlatmak için içinde tanımlanmış yapıcılara sahiptir. Ancak, bir arayüz, başlatılacak alan olmadığından herhangi bir kurucuya sahip değildir. Arabirimin alanları yalnızca bildirimleri sırasında başlatılır.

Sonuç:

Hem sınıfların hem de arayüzlerin kendi önemi vardır. Görevin nasıl yapılacağını tanımlamamız gerektiğinde bir sınıf kullanılır. Hangi görevin yapılması gerektiğini bilmemiz gerektiğinde bir arayüz kullanılır.

Top