Son Yazılar

Ücretsiz SVN Hosting Geliştirmekte olduğunuz projeler için ücretsiz olarak size SVN hizmeti sunan bir site var. Projelerinizi oluşturduktan sonra, yapacaklarınızı, buglarınızı kaydedip...

Readmore

Sitem hacklendi ne yapmalıyım Merhaba, Son günlerde, web sitenizin adresini girdiğinizde, web siteniz yerine aşağıdaki gibi hata mesajları alıyorsanız, Parse error: syntax error, unexpected...

Readmore

Ücretsiz Web Hosting Geliştirmekte olduğunuz web siteleri için ücretsiz hosting arıyorsanız aşağıdaki adres tam size göre. http://www.000webhost.com adresine girerek bu servisten faydalanabilirsiniz....

Readmore

www.SevgiKorkmaz.com Rss

Sınıflar ve Nesneler

Posted on : 11-12-2008 | By : admin | In : Java, Yazılım

2


Nesne nedir?
Nesne tabanlı yazılım tekniklerinin temelinde adından da anlaşılacağı gibi nesne bulunur. Nesne özellikleri yani değişkenleriyle durumunu, metotlarıyla
da davranışlarını bilen veri yapılarıdır. Metotlar nesnenin iç durumu üzerinde işlem yaparlar ve diğer nesnelerle iletişim mekanizması olarak hizmet sağlarlar.


Nesne tabanlı yazılımlar bize aşağıda belirtilen faydaları sağlarlar.
Modülerlik: Bir nesnenin kaynak kodu diğer nesnelerin kaynak kodundan bağımsız olarak yazılabilir.
Bilgi Güvenliği : Sadece nesnelerin metotları ile işlem yapmak metotların iç çalışma şekillerinin detaylarının dış dünyadan
gizlenmesini sağlar.
Yeniden kullanılabilir kod: Bir nesne gerçekten varsa o nesneyi başkası yaratmış olsa bile kendi programlarınızda kullanabilirsiniz. Bu özelliği ile nesne tabanlı yazılımlar bir kere yazdığımız kodlari tüm uygulamalarımızda kullanma olanağı sağlar.
Çıkart at yenisiyle değiştir: Eğer uygulamanızda bir sınıf size problem çıkartıyorsa onu kolaylıkla uygulamanızdan çıkarabilir ya
da yenisi ile değiştirebilirsiniz.



Sınıf nedir?
Sınıf yaratılan her bir nesne için kullanılan şablondur. Nesneler bu şablonların örnekleridir (instance).
sinif

class Sinifim{
//ozellikler
// yapicilar
// metot tanımlari – davranışlar
}

Java da yaygın kullanımda sınıf isimleri büyük harfle başlar.


class Kutu{


}

Yine genel kullanımda özellik ve metotların isimleri küçük harfle başlar. Birden fazla kelime içerecek olan özelliklerde kelimeler bitişik ikinciden başlayarak her kelime büyük harfle başlayacak şekilde eklenir.


int deneme;
int sorguSonucSayisi
void hesapla();
void setAd()


kutu


Yapıcılar – constructors
Bir sınıftan bir nesne üretmek sınıfın yapıcısı ve new komutu ile mümkün
olmaktadır. Yapıcılar genellikle yaratılacak nesnelerle ilgili ilk değer
atamakta da kullanılır.

class Kutu{
int en,boy,yukseklik;
String renk = “siyah”;
public Kutu(){ —-> Yapıcı
en = 5;
boy = 3;
yukseklik 8;
}
}

Bir sınıf için yapıcı tanımlanmadığı zaman java otomatik olarak hiç bir parametre almayan bir boş yapıcı tanımlar. Eğer programcı yapıcı tanımlamışsa java bu boş yapıcıyı oluşturmaz.

class Kutu{
int en,boy,yukseklik;
String renk = “siyah”;
public Kutu(int enDegeri){
en = enDegeri;
boy = 3;
yukseklik 8;
}
}



Bir sınıf için birden fazla yapıcı tanımlamak mümkündür. Yalnız aynı yapıya sahip örneğin iki tane int tipinde değer alan iki yapıcı yazılamaz.

class Kutu{
int en,boy,yukseklik;
String renk = “siyah”;
public Kutu(int enDegeri){
en = enDegeri;
boy = 3;
yukseklik 8;
}
public Kutu(int enDegeri, int boyDegeri){
en = enDegeri;
boy = boyDegeri;
yukseklik 8;
}
}



kutuuret.JPG

Java sınıflarında durum bilgisi özelliklerde tutulur. Aynı isimde iki özellik tanımlanamaz. Davranışlar metotlarin içerisinde belirtilir. Bir method’la aynı isimde başka bir method yazılabilir. Buna overloading (çeşitleme) denir. Çeşitleme işleminde aynı metot adına sahip metot’ların yapılarının mutlaka farklı olması gerekmektedir.

public int alanHesapla(int i);
public double alanHesapla(double d);



Bir metodun döndüğü değer o metodun yapısına yani signature’una dahil değildir.
Aynı isimde aynı parametre tiplerini aynı sırada belirten fakat iki ayrı return type olan iki ayrı method olamaz.

Nesnenin değişkenlerini gizleyip durumunu metotları ile sağlamaya encapsulation yani kapsülleme denir. Kapsülleme nesne tabanlı yazılımların temel unsurlarından biridir.

Kapsülleme yapabilmek için private, public ve proteced gibi bir takım sözcükler kullanılır. Bunlara access modifier (erişim değiştirici) denir. Hiç birini kullanmak da bu bağlamda belli bir tercih anlamına gelir. Erişim değiştiricileri özellik ve metotlar tanımlanırken verilir.
● public int kenarSayisi;
● private double maasHesapla(int personelNumarası){ …… }


Varsayılan Erişim (Default Access)
Bir özellik ya da metot tanımlanırken hiç bir erişim değiştiricisi kullanılmadığı durumlarda bu metot ya da özellik pakete özel yani ‘package private’ olur. O metot veya özelliğe aynı paket içerisinde bulunan diğer sınıflardan erişime izin verilir. Başka paketlerde bulunan sınıflar erişemez.


Genel Erişim (Public Access)
Bir özellik ya da metot tanımlanırken public erişim değiştiricisi kullanıldığı durumlarda bu metot ya da özellik sistemde bulunan tüm sınıflar için erişilebilir olur. Bir nesnede ne kadar az public değişken varsa dışarıya o kadar sade görünür ve o kadar kolay kullanılır. O nesneyi kullananlar gereksiz bir çok üye arasında dolaşmak zorunda kalmazlar.


Özel Erişim (Private Access)
Bir özellik ve ya metodu tanımlarken başına private yazdığımız durumlarda o metot ya da özelliğe sadece içinde bulunulan sınıftan erişilmesine izin verilir. Başka hiç bir sınıf tarafından öyle bir metot ya da özellik olduğu bilinemez. Ulaşılması istenen durumlarda belirli bir kontrol yapılması istendiği durumlarda özellikleri private olarak tanımlayarak değere erişmek için public metotlar yazabiliriz.


This referansı
this bir sınıf içerisinde, o sırada kullanılan nesneyi (instace’ı) belirten referanstır.


Eğer içinde bulunduğumuz metot içerisinde kullanacağimiz özellik aynı isimle yineleniyorsa (gölgeleniyorsa) this referansını kullanırız.

class Personel{
String ad;
public void setAd(String ad){
this.ad = ad;
}



Sınıfımızın yapıcısı içerisinde diğer yapıcısını çağırmak istiyorsak o zaman this() kullanırız.

class Personel{
String ad;
public Personel(String ad){
this.ad=ad;
}
public Personel(){
this(“YOK”);
}



Bir sınıf tanımı içerisinde yapılabilecek iki tür özellik bulunmaktadır.
Bir tanesi instance variables yani nesne ya da örnek özelliği bir diğeri ise
class variables yani sınıf özellikleridir.
Nesne özelliği : public int i1 = 0;
Sınıf özelliği : public static int i2 = 0;
Nesne özellikleri o sınıfdan bir nesne oluşturulduğu zaman yaratılırlar. Ve o nesne üzerinden erişilirler. Sınıf özelliklerini kullanmak için nesne oluşturmaya gerek yoktur.


Metotlar
Bir sınıf tanımı içerisinde yapılabilecek iki tür metot bulunmaktadır. Bir tanesi instance methods yani nesne ya da örnek metotları bir diğeri
ise class methods yani sınıf metotlaridir.

Nesne metodu : public int getUzunluk(){
return i1 ;
}
Sınıf metodu : public static int getUzunluk2(){
return i2;
}

  • Nesne metotları nesne özellikleri ve nesne metotlarına direkt olarak
    erişebilirler.
  • Nesne metotları sınıf metotları ve sınıf özelliklerine direkt olarak
    erişebilirler.
  • Sınıf metotları sınıf metotları ve sınıf özelliklerine direkt olarak
    erişebilirler.
  • Sınıf metotları nesne metotlarına ve nesne özelliklerine direkt olarak
    erişemezler. Mutlaka bir nesne referansı üzerinden erişmeleri gerekir.

Sabit sayılar
static ve final değiştiricileri bize sabit değerler yaratma olanağı sağlarlar.
static final double PI = 3.141592653589793;
Java isimlendirme standardına göre sabit sayılar adlandırılırken tüm isim büyük harflerle yazılır ve birden fazla kelime içerecekse kelimeler _ işareti ile ayrılır.

static final byte SAAT_SAYISI = 24;


Comments (2)

[...] Java’nın kökeni 2- Ortamın Kurulması 3- Sınıf – Nesne yapısı 4- Veritipleri 5- Denetim Deyimleri 6- İç Sınıflar 7- Çok Biçimlilik – ve Miras [...]

Sevgi Hanım bu makaleniz için teşekkür ederim.

Write a comment

Advertise Here