İLERİ PROGRAMLAMA Dersi Java’da Soyut Sınıflar ve Arayüzler soru detayı:
SORU:
Aşağıda verilen arayüzde Javakodları hangi amaçla kullanılmıştır?
/* Insan.java */
public class Insan implements Comparable { private String isim;
private int yas;
public Insan(String isim, int yas) {
this.isim = isim; } this.yas = yas;
public int yasGetir() { } return this.yas;
public String isimGetir() { } return this.isim;
public int compareTo(Object deger) { int sonuc = 0;
Insan insan2 = (Insan) deger;
if(this.yas == insan2.yas) sonuc = 0;
else if(this.yas > insan2.yas) sonuc = 1;
else if(this.yas < insan2.yas) sonuc = -1;
return sonuc;
}
}
CEVAP:
Arayüzler, programcılar tarafından gerekli durumlarda oluşturulabilir. Bununla birlikte, Java standart kütüphanesi içerisinde de kullanılabilir hazır arayüzler mevcuttur. Soru örneğinde kodları verilen Insan sınıfı Comparable adlı Java kütüphanesi arayüzünü uygulayan bir sınıftır. Bu sınıfın içerisinde, compareTo isimli metodun içeriğinin tanımlandığını görmekteyiz. Bu metot, Comparable arayüzü içerisinde tanımlı olan ve int türünde değer döndürmesi beklenen bir metottur. Karşılaştırılan iki nesnenin birbirinden büyük veya küçük olması durumunda bu metodun 1 veya -1 döndürmesi beklenir. Eşitlik durumunda ise 0 değerini döndürmesi beklenmektedir. Insan sınıfının kullanımını bir uygulama içerisinde görebilmek için ise Java kodlarını içeren HazirArayuzUygulamasi1 isimli sınıf kullanılmaktadır. HazirArayuzUygulamasi1 sınıfı içerisinde Insan türünde nesneler oluşturulmuştur. Daha sonra, bu nesnelere ait compareTo metodu kullanılarak insanların birbiriyle yaş bazında kıyaslamaları yapılmıştır.