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