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.

}<br />

public setX(int c) {<br />

this.resetX();<br />

this.x = c;<br />

}<br />

Bu şekilde "private" olarak bildirilmiş "resetX" metodu artık bu sınıf türünden yaratılmış nesneler ile dışarıdan<br />

kullanılamaz. Yani aşağıdaki gibi bir kullanım geçersizdir:<br />

class BaskaSinif {<br />

public static void main(String arg[]) {<br />

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

a.resetX();<br />

/* YANLIŞ! resetX private bir metoddur<br />

Bu şekilde dışarıdan kullanılamaz.*/<br />

...<br />

}<br />

}<br />

En son örnekte gördüğünüz gibi "a.resetX()" gibi bir çağrım geçerli değildir. Çünkü "DegiskenTutan" sınıfının<br />

"resetX" isimli metodu "private" bir metoddur. Bu nedenle, bu sınıf türünden yaratılmış olan "a" nesnesi aracılığıyla<br />

bu metoda dışarıdan erişilemez. Ancak önceki örnekteki gibi "resetX" metodunu sınıfın diğer bir metodu olan "setX"<br />

metodu kullanabilmektedir. Değişken ya da metodların "private" ya da "public" olması, bu metod ya da<br />

değişkenlerin sadece dışarıdan kullanımı etkileyen bir durumdur. Sınıf içerisindeki diğer metodlar bu "private"<br />

değişken ya da metodlara erişebilirler.<br />

Tüm bunların bir sonucu olarak da , sınıflar yazılırken yaratılan "public" metod ve değişkenler, sınıf nesneleri<br />

aracılığıyla dışarıdan erişilebilirler.<br />

Statik Metod ve Değişkenler<br />

Şu ana kadar öğrendiklerimizi ele aldığımızda neden JOptionPane sınıfının showMessage isimli metodunu<br />

kullanmak için JOptionPane sınıfı türünden bir nesne yaratmıyoruz? diye sormamız gerekir.<br />

Bazı metodlar yazıldıkları sınıflar içerisinde statik olarak yazılırlar. Bu türden statik olarak yazılmış metodları<br />

kullanmak için sınıf nesnesi yaratmak gerekmez. Bu metodları kullanmak için yazıldıkları sınıf isminden sonra "."<br />

işareti koyarak doğrudan metodu çağırabilirsiniz.<br />

Ancak tahmin edersiniz ki bir metod statik olarak yazılmışsa genel amaçlı bir metod olmalıdr. Mesela JOptionPane<br />

isimli sınıfın showMessageDialog ya da showInputDialog isimli metodları genel amaçlı olup her zaman<br />

kullanılabilmektedir. Ekrana bir mesaj penceresi çıkarmak ya da kullanıcıdan bir giriş değeri almak için bir nesne<br />

yaratmaya gerek yoktur. Siz de kendi tasarladığınız sınıflar içerisinde bu şekilde genel amaçlı metodlar yazmak<br />

isterseniz bunları statik olarak yaratabilirsiniz.<br />

Bir metodun statik olarak yaratılabilmesi için, metodun prototipinin başına "static" anahtar sözcüğü eklenir.<br />

Aşağıdaki iki örneği yazıp kaydediniz:<br />

import javax.swing.*;<br />

class StatikTest {<br />

String mesaj;<br />

public StatikTest() {<br />

mesaj = "";<br />

}<br />

public StatikTest(String m) {<br />

this.mesaj = m;<br />

}<br />

public static void ozelMesaj(String m) {<br />

JOptionPane.showMessageDialog(null, m);<br />

50

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

Saved successfully!

Ooh no, something went wrong!