Java Programlama

Sınıf (Class)

Çevremizde bulunan varlık ya da nesneler sahip oldukları ortak özellikler nedeniyle sınıflandırılabilirler. Ortak özellikler söz konusu nesnelerin bir grup altında toplanmasına ve işlem görmesine olanak sağlar. Ancak, ortak özelliklerinin olması tüm özelliklerinin aynı olması anlamına gelmez. Ortak özellikleri nedeniyle bir sınıf içinde tanımlanabilen varlık ya da nesneler kendilerine has özellikleri nedeniyle de farklı alt sınıflar içinde gruplandırılabilirler.

Örneğin, bir okulda görev yapan ve çalışan insanların tamamını personel adlı bir sınıf içinde toplayabiliriz. Okulda görev yapan öğretmen, memur, görevliler ile öğrencilerin tamamının sahip olduğu ortak özellikler bir ana sınıf içinde toplanabilir. Örneğin adı, soyadı, doğum tarihi, memleketi gibi. Ancak, ortak özelliklerin yanında her grubun farklı özellikleri de vardır. Örneğin, öğretmenlerin branşı ve görev süresi gibi özellikleri varken, öğrencilerin okul numarası ve bölümü gibi özellikleri vardır. Her grubun kendine has özellikleri de alt sınıflar içinde toplanabilir.

Bu duruma yazılım açısından baktığımızda; öncelikle tüm grupların ortak özelliklerini ve bu özellikleri kullanan ya da işlem yapan metotları içeren bir ana sınıf oluşturmamız gerekir.

Sınıf, bu sınıftan oluşturacağımız nesnenin ana yapısını belirler.

Sınıf oluşturmak için class ifadesi kullanılır.

/* personel.java : Ana sınıf bildirimi */
public class personel {
  public String adi;   
  public String soyadi;
  private int yasi;    

  public void setBilgi(String cadi, String csoyadi, int cyasi) {
    adi = cadi;
    soyadi = csoyadi;
    yasi = cyasi;
  } 

  public void yazdirBilgi() {
    System.out.println("Okulumuz personeli: " + "Adı: " + adi + " Soyadı: " + soyadi + " Yaşı: " + yasi);
  }  
}

Sınıf bir nesnenin ana şeklini belirleyen bir yapıdır.

Ana sınıf tanımlandıktan sonra her grup için farklı olan özellikleri ve bu özellikleri kullanan ya da işlem yapan metotları içeren birer alt sınıf tanımlanır. Bu işlem için extends ifadesi kullanılır. Aşağıda personel ana sınıfından ogretmen ve ogrenci adında iki çocuk snıf türetilmektedir:

/* ogretmen.java : Çocuk sınıf bildirimi */
public class ogretmen extends personel {
  public String brans;
  public int hizmet;

  /* Üst sınıfta geçersiz hale getirilmiş metod */
  public void setBilgi(String cadi, String csoyadi, int cyasi, String cbrans, int chizmet) {
    super.setBilgi(cadi, csoyadi, cyasi); 
    brans = cbrans;
    hizmet = chizmet;
  } 

  /* Üst sınıfta geçersiz hale getirilmiş metod */
  public void yazdirBilgi() {
    super.yazdirBilgi();
    System.out.println("Öğretmen: Branş: " + brans + " Hizmet yılı: " + hizmet);
  }  
}
/* ogrenci.java : Çocuk sınıf bildirimi */
public class ogrenci extends personel {
  public String bolum;
  public String sinif;
  public int okulno;

  /* Üst sınıfta geçersiz hale getirilmiş metod */
  public void setBilgi(String cadi, String csoyadi, int cyasi, String cbolum, String csinif, int cokulno) {
    super.setBilgi(cadi, csoyadi, cyasi); 
    bolum = cbolum;
    sinif = csinif;
    okulno = cokulno;
  } 

  /* Üst sınıfta geçersiz hale getirilmiş metod */
  public void yazdirBilgi() {
    super.yazdirBilgi();
    System.out.println("Öğrenci: Bölüm: " + bolum + " Sınıf: " + sinif + " Okul No.: " + okulno);
  }  
}

Aşağıdali javaprog.java dosyası ise yukarıda tanımı yapılan üç sınıfın kullanıldığı bir java program dosyasıdır. Sınıf oluşturularak nesnelerin ana yapısı oluşturulduğundan, artık sınıf adlarını kullanarak nesne oluşturabiliriz. Bu işlem için new ifadesi kullanılır. Bu nesne oluşturularak aslında bu sınıfa ait bir değişken tanımlanarak sınıfın bir kopyası elde edilmektedir. Daha sonra, bu değişken yoluyla sınıf içindeki metodlar kullanılarak sınıftaki değişkenlere değer atanır ve bu değerler ekrana yazılır.

/* javaprog.java */
public class javaprog {
  public static void main(String args[]){
    /* Her sınıfa  ait 3 farklı değişken bildirimi */
    personel personel01 = new personel();
    ogretmen ogretmen01 = new ogretmen();
    ogrenci ogrenci01 = new ogrenci();

    personel01.setBilgi("Ahmet", "Kara", 27); /* personel sınıfı fonksiyonu çağrılır */
    ogretmen01.setBilgi("Nedim", "Sakin", 35, "Matematik", 13); /* ogretmen sınıfı fonksiyonu çağrılır */
    ogrenci01.setBilgi("Serdar", "Uzun", 16, "Sayısal", "11FEN-A", 408);  /* ogrenci sınıfı fonksiyonu çağrılır */

    personel01.yazdirBilgi(); /* personel sınıfı fonksiyonu çağrılır */
    ogretmen01.yazdirBilgi(); /* ogretmen sınıfı fonksiyonu çağrılır */
    ogrenci01.yazdirBilgi();  /* ogrenci sınıfı fonksiyonu çağrılır */
  }
}

Yukarıdaki dört dosyanın aynı dizin içinde yer alması yeterlidir. Komut satırında aşağıdaki satırları yazdığınızda program derlenir ve çalışır:

C:\>javac javaprog.java
C:\>java -Dfile.encoding=Cp857 javaprog
Okulumuz personeli: Adı: Ahmet Soyadı: Kara Yaşı: 27
Okulumuz personeli: Adı: Nedim Soyadi: Sakin Yaşı:35
Öğretmen: Branş: Matematik Hizmet yılı: 13
Okulumuz personeli: Adı: Serdar Soyadı: Uzun Yaşı: 16
Öğrenci: Bölüm: Sayısal Sınıf: 11FEN-A Okul No.: 408