Archive

Archive for Ekim, 2011

Java’da Gizli (Implicit) ve Açık (Explicit) Parametreler

Ekim 18th, 2011 No comments

Programlama dillerinde bir işlev, fonksiyon veya yöntem (metod) çağırırken veri geçişi için parametreler kullanılır. Java dilinde de aynı şey geçerlidir. Aşağıdaki gibi bir yöntemimiz olduğunu düşünürsek;

public void maasArtir(double oran) {
	maas += maas * oran/100;
}

yukarıdaki yöntem parametre olarak double türünde bir değer almakta ve nesne değişkeni olan “maaşı” artırmaktadır. Parametre olan “oran” değişkeni yöntemin imzasında açıkça tanımlandığı için açık (explicit) parametredir. Buraya kadar ilginç birşey yok, bildiğimiz şeyler. Şimdi bu yöntemin Personel isimli bir sınıf içerisinde tanımlı olduğunu düşünelim ve Personel sınıfından yarattığımız personel1 adında bir nesnemiz olsun.

Personel personel1 = new Personel();

Daha sonra personel1 nesnesi üzerinden maasArtir yöntemini çağıralım.

personel1.maasArtir(20);

Bu koda göre personel1 nesnesine ait olan “maas” değişkeni %20 oranında artacaktır. “oran” parametre değişkeni açık parametre ise yazının başlığında belirttiğimiz gizli parametre nerededir? Java dilinde yöntem çağırırken kullandığımız nesne referansı da yönteme parametre olarak gönderilmektedir. Yani nesne referansımız olan personel1, maasArtir yöntemi için gizli (implicit) parametredir. Diğer bir deyişle yöntemi çağırmak için kullandığımız referans, aynı zamanda gizli parametredir. Gizli parametre yöntemin imzasında tanımlanmaz, gizli olması da zaten bu yüzdendir.

Peki, açık parametre olan “oran” değişkenine yöntem içerisinde direk adıyla erişebiliyorsak, gizli parametreye nasıl erişeceğiz? Bunun için de this anahtar kelimesi kullanılmaktadır. Yöntem içerisinde nesne değişkenlerine erişmek istediğimizde this kelimesini kullanabiliriz. Yani en yukarıda yazdığımız yöntemi aşağıdaki gibi de yazabiliriz.

public void maasArtir(double oran) {
	this.maas += this.maas * oran/100;
}

Yukarıdaki gibi bir kullanımda this anahtar kelimesi ile gizli parametreye erişmiş oluyoruz ve böylece personel1 nesnesinin maaş bilgisine erişiyoruz. Biz maas değişkeninin önüne this yazmasak bile bu kelime otomatik olarak eklenmektedir. Bu şekilde açıkça “this” yazmak, programın okunabilirliğini artırmak ve nesne değişkenleri ile yerel değişkenleri bir bakışta ayırt etmek için faydalı olabilir.

Categories: Java Tags: ,
%d blogcu bunu beğendi: