Veri Yapıları 3. Hafta
m
Sınıflar
i.c o
Nesne Nedir? Nesne, birbiriyle ilişkili durum ve davranışların toparlandığı yapılardır. Yazılım nesneleri gerçek yaşamda gördüğümüz nesneleri modellemek için kullanılır. Sınıf nedir? Gerçek yaşam nesnelerinin durum ve davranışlarını modelleyen yazılım nesnelerinin planı, prototipidir. Örnek olarak verecek olursak, aşağıda yazılan Bisiklet kodu bir sınıf kodudur. Bu sınıfın amacı gerçek yaşam bisiklet nesnelerini yazılımda modellemektir.
dil
/** * Bu sinifin amaci temel bisiklet nesnelerini betimlemektir * @author emre */ public class Bisiklet { // Bisiklet sinifi uc adet degisken iceriyor public int hiz; public int ritm; public int vites;
va
// Bisiklet sinifi bir adet yapici/yapilandirici iceriyor public Bisiklet(final int baslangicRitm, final int baslangicHiz, final int baslangicVites) { vites = baslangicVites; ritm = baslangicRitm; hiz = baslangicHiz; }
ww w. ja
// Bisiklet sinifi bes metot iceriyor
public void durumuYaz() { System.out.println("R:" + ritm + " V:" + vites + " H:" + hiz); } public void frenUygula(final int azaltim) { hiz -= azaltim; }
public void hizlan(final int arttirim) { hiz += arttirim; } public void setRitm(final int yeniRitm) { ritm = yeniRitm; } public void setVites(final int yeniVites) { vites = yeniVites; }
}
m
Mesela yukarıdaki sınıfı kullanarak aşağıdaki kod parçasında görüldüğü gibi birbirinden farklı iki bisiklet nesnesi oluşturabiliriz: public class BisikletDeneme { public static void main(final String[] args) {
bisiklet1.durumuYaz(); bisiklet2.durumuYaz(); }
}
i.c o
// Iki farkli bisiklet nesnesi yaratalim final Bisiklet bisiklet1 = new Bisiklet(1, 10, 1); final Bisiklet bisiklet2 = new Bisiklet(2, 20, 2);
dil
Daha sonra biz ayrıca gerçek yaşamdaki dağ bisikletini modellemek isteyelim. Bu durumda yeni sınıfımızın adı DagBisikleti olacaktır. Ve bu sınıfımız bir bisiklet modeli olduğu için daha önce tanımlamış olduğumuz bisiklet sınıfının bir alt sınıfı olduğunu belirmemiz gerekecektir. DagBisikleti sınıfımız, Bisiklet sınıfının tüm sahaları ve metotlarını barındıracaktır. Buna Kalıtım adı verilmektedir. Dağ bisikletinin bisikletten tek farkı koltuk yüksekliğinin değiştirilebilmesidir. public class DagBisikleti extends Bisiklet {
// DagBisikleti alt sinifi tek bir degisken iceriyor
va
public int koltukYuksekligi;
// DagBisikleti alt sinifi bir yapici iceriyor
ww w. ja
public DagBisikleti(final int baslangicYukseklik, final int baslangicRitm, final int baslangicHiz, final int baslangicVites) { super(baslangicRitm, baslangicHiz, baslangicVites); koltukYuksekligi = baslangicYukseklik; } // DagBisikleti alt sinifi bir metot iceriyor public void setKoltukYuksekligi(final int yeniYukseklik) { koltukYuksekligi = yeniYukseklik; }
}
Erişim Kontrolleri Erişim kontrol değişkenleri, bir sınıftaki metot ve değişkenleri diğer sınıfların nasıl kullanabileceğini belirlemek için kullanılmaktadır. Erişim public protected yok private
Sınıf Y Y Y Y
Paket Y Y Y N
Alt sınıf Y Y N N
Dünya Y N N N
ww w. ja
va
dil
i.c o
m
Pratik çalışması olarak gösteri bisikletlerinin altı sınıfını yapalım.