02.03.2015 Views

Java Nedir

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

3 Son olarak da GenelSinif.java dosyasını çalıştıralım:<br />

java GenelSinif<br />

Not: Burada görüyoruz ki "DegiskenTutan.java" dosyası sadece derleniyor ancak GenelSinif.java gibi sonra da<br />

çalıştırılmıyor. Bunun nedeni asıl çalışan programın "GenelSinif" olması "DegiskenTutan" sınıfının ise sadece<br />

kullanılıyor olmasıdır. Çünkü "GenelSinif" sınıfı içerisinde "main" metodu vardır. Bununla ilgili ayrıntılı açıklamayı<br />

yazının ilerleyen kısımlarında zaten bulabileceksiniz.<br />

Örneğimizde 7. ve 8. satırlarda DegiskenTutan sınıfı türünden "a" ve "b" isimli 2 değişken ya da iki<br />

"DegiskenTutan" sınıfı nesnesi yaratılmaktadır. Daha sonra 9. satırda a nesnesinin "setX" metodu "a" nesnesinin "x"<br />

değişkeni değerini 10, "b" nesnesinin "setX" metodu da "b" nesnesinin "x" değişkeninin değerini 20 yapmaktadır.<br />

Dikkat ederseniz "a" ve "b" nesneleri de "setX" ve "getX" metodlarına sahiptir ve bu metodları kullanmak için nesne<br />

adından sonra "." işareti ve sonra da metod adını yazmak gerekir. "a" ve "b" nesnelerinin tıpkı "DegiskenTutan"<br />

sınıfı gibi metodlara ve değişkenlere sahip olmalarının nedeni, bu nesnelerin de yaratılırken "DegiskenTutan" sınıfı<br />

türünden yaratılmış olmalarıdır.<br />

12. ve 13. satırlarda hazırlanan "message" isimli String değişkeni içerisine ekranda görülecek yazı ve "getX"<br />

metodları yardımıyla "a" ve "b" nesnelerinin "x" değişkenlerinin içerisindeki değerler hazırlanmaktadır. En son olarak<br />

da "message" isimli değişken içerisinde hazırlanan bu son görüntü "JoptionPane" isimli sınıfın "showMessageDialog"<br />

isimli metodu yardımıyla ekrana gönderilmektedir.<br />

Bu örnekten çıkaracağımız sonuç şudur; Genel olarak yazılmış sınıfların kullanılabilmesi için öncelikle bu sınıflar<br />

türünden değişkenler yaratılarak bu sınıfların birer kopyası ya da nesnesi çıkarılmalı ve sınıfa ait değişken ve<br />

metodlar bu nesneler aracılığıyla kullanılmalıdır. Ayrıca gördüğümüz gibi bir sınıfa ait metodlar kullanılırken sınıf<br />

nesnesinden sonra "." işareti ve daha sonra da metodun adı yazılmaktadır.<br />

Bu örneğimizde "a" ve "b" isimli sınıf nesneleri yaratıldıktan sonra, sahip oldukları "x" değişkenlerine "setX" metodu<br />

ile değerler verilmektedir. Peki eğer biz daha nesneyi yaratorken hemen o anda "x" değişkenine değer vermek<br />

istersek ne olacak? Bunun için "başlangıç metodu" kavramını bilmemiz gerekir.<br />

Sınıfların Başlangıç Metodları (Constructors):<br />

Sınıfların başlangıç metodları bizim bildiğimiz anlamda metodlardan biraz daha farklıdır. Bu metodların en önemli<br />

özelliği, bir sınıf nesnesi yaratılırken otomatik olarak çağrılmalarıdır. Mesela "DegiskenTutan" sınıfı türünden bir<br />

nesne yaratılırken aslında "new" anahtar sözcüğünden sonra bir metod çağrıldığını görmekteyiz:<br />

DegiskenTutan a = new DegiskenTutan();<br />

İşte bu "DegiskenTutan()" isimli metod, "DegiskenTutan" isimli sınıfın başlangıç metodudur. Peki o zaman başlangıç<br />

metodlarının normal metodlardan farkı nedir?<br />

1 Başlangıç metodları kesinlikle ve kesinlikle sınıf ismiyle aynı olmak zorundadır. Eğer başlangıç metodunun ismini<br />

verirken sınıf isminden farklı bir isim kullanırsanız bu metod artık başka bir metod olarak kabul edilir. Örneğin:<br />

DegiskenTut<br />

-> Yanlış. Sınıf ismi DegiskenTutan o halde başlangıç metodunun ismi bu olamaz<br />

Degiskentutan -> Yanlış. Sınıf isminde T harfi de büyük. İsim, büyük küçük harf bazınbda da aynı olmak<br />

zorundad?r.<br />

2 Başlangıç metodları geri dönüş değerine sahip değildir. Yalnız burada geri dönüş değeri void demek<br />

istemiyorum. Başlangıç metodlarının geri dönüş değeri gibi bir kavramları yoktur. void ile yok başka anlamlara<br />

gelir.<br />

3 Bir sınıfın birden fazla başlangıç metodu olabilir. Bütün başlangıç metodları da sınıf ismiyle aynı olmak<br />

zorundadır ancak her birinin parametreleri birbirlerinden farklı olmak zorundadır.<br />

46

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!