Java’da Class ve Methodlar


Java’daki class’lar ile c’deki struct’lar genelde birbirine karıştırılsa da aslında büyük farkları var. Class belli bir parametrede kayıtlı bilgileri çekerken sizin bunu değiştirme şansınız yoktur. Struct yapısında ise siz istediğin değişkeni atama şansına sahipsinizdir. O yüzden class’lar daha bağımlı bir haldedir. Örnek olarak göstermek gerekirse: 

Sınıflar, soyut sınıflar ve methodlar

abstract class Ogrenci {
public String okul=”Ogrenci” ;
public abstract void ogretmen() ;// soyut sinif 
public void notIste() { // soyut olmayan sinif
System.out.println(“Hocadan not iste”);
}

Örnekte de görüldüğü gibi abstract programa soyut bir sınıf katar.  Örneğin “abstract void quiz()” soyut bir metoda örnektir. Soyut(abstract) sınıflarda new komutu ile yeni object yaratamayız. Somut sınıflardan en büyük farkı budur.

 

Soyut sınıf ve methodlara ihtiyaç duyma nedeni

abstract class Cizim {
public abstract void noktaCiz(int x , int y) ;// soyut sinif

public void cizgiCiz(int x1 , int y1 , int x2 , int y2) { // soyut olmayan sinif
// noktaCiz(x,y); // metodunu kullanarak ekrana cizgi ciz
}
}

class AkıllıTelefonCizim extends Cizim {
public void noktaCiz(int x, int y) { // iptal etme (override)
// Akıllı telefon ekrani icin nokta ciz…..
}
}

class LcdCizim extends Cizim {
public void noktaCiz(int x, int y) { // iptal etme (override)
// Lcd ekrani icin nokta ciz…..
}
}

public class CizimProgrami {
public void baslat(int x1 , int y1 , int x2 , int y2) {
// akıllı telefonun telefonunun ekranina cizgi cizmek icin
Cizim c1 = new akillitelefonCizim();
c1.cizgiCiz(x1 , y1 , x2 , y2);

// Lcd ekranina cizgi cizmek icin
Cizim c2 = new LcdCizim();
c2.cizgiCiz(x1 , y1 , x2 , y2 );
}
}

Çizim sınıfında bulunan cizgiCiz() metodu soyut(abstract) değildir fakat noktaCiz() metodu soyuttur , bunun sebebi cizgiCiz() metodunun ekranlara çizgi çizmek icin noktaCiz() metoduna ihtiyac duyduğu içindir. cizgiCiz() metodunun ihtiyac duydugu tek şey , ekran üzerinde tek bir noktanın nasıl çizileceğini bilmektir , bu bilgiler cizgiCiz() metoduna verildiği sürece sorun yaşanmıyacaktır. Ekrana tek bir noktanın nasıl çizileceğini , Cizim sınıfından türemiş alt sınıflar tarafından verilmektedir. Abstract kavramı da bu metodları ekrana yansıtmakta ihtiyaç duyulan bir kavram olduğu için gereklidir. Ayrıca ingilizcesi iyi olanlar için çok yararlı olacağını düşündüğüm bir videoyu da izlemenizi tavsiye ediyorum;

Elimden geldiğince açıklamaya çalıştığım bu konuda umarım yardımcı olabilmişimdir. Java ile ilgili daha fazla bilgi için sayfamızı ziyaret edebilirsiniz.

 

 

Bunlar da ilginizi çekebilir

Gitmeden yorumunuzu bırakın.


Time limit is exhausted. Please reload the CAPTCHA.