İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır

Object Kullanımı

Object Yaratmak

Diyelim ki aynı method, parameter'lerden biri hep aynı olmak üzere çok defa çağrılıyor.

FlexibleGreetingPrinterWithDefault.printGreeting("Dünya","İyi Misin");
FlexibleGreetingPrinterWithDefault.printGreeting("Alem","İyi Misin");
FlexibleGreetingPrinterWithDefault.printGreeting("Evren","İyi Misin");
FlexibleGreetingPrinterWithDefault.printGreeting("Güneş","İyi Misin");

görüldüğü gibi gereksiz yere "İyi Misin" parameter'i sürekli giriliyor. Çünkü bu class'a şöyle diyemiyorsunuz. "'İyi Misin' selemlamasını aklında tut. Sonra da aynı selamlamayı Dünya, Alem gibi isimle kullan." Oysa Java'da bunu yapmak mümkündür. Bunun için class şu şekide olmalıdır.

Göster Gizle Kopar Satır Gizle Satır Göster
  1 public class NonStaticGreetingPrinter{
  2   String salutation;
  3   public void printGreeting(String greeted){
  4     System.out.println(salutation+ " "+ greeted + "!" );
  5   }
  6 }

Kullanımı da şöyle olur.

NonStaticGreetingPrinter printer=new NonStaticGreetingPrinter();
printer.salutation="İyi Misin";
printer.printGreeting("Dünya");
printer.printGreeting("Alem");
printer.printGreeting("Evren");
printer.printGreeting("Güneş");

Dikkat ettiyseniz printGreeting() methodunun başında static yazmıyor. static keyword'u methodlar için kullanılıdığında, ilgili method, bu class'tan bir nesne yaratılmaksızın kullanılabilir demektir. Ancak bu durum kullanacağı veriyi dışardan her sefer alan method'lar için geçerlidir. O yüzden

FlexibleGreetingPrinterWithDefault.printGreeting("Güneş","İyi Misin")

ifadesinde "İyi Misin" selamlamasını sürekli girmek zorundayız. Bunun nedeni bu classından hiç nesne yaratılmamış olması ve veri tutma yeteneğinizin olmamasıdır. NonStaticGreetingPrinter ise yaratılabilir ve salutation değerini saklayabilir. Bir nesne içerisinde değer saklayabilen variable'a property denir. Kullanımı da object.property biçimindedir. Bir nesne yaratmak için

ClassName object=new ClassName();

gibi bir ifadeye gerek vardır.

NonStaticGreetingPrinter printer=new NonStaticGreetingPrinter();

gibi. Bu class'da salutation bir property'dir. printGreeting() methodunun her çağrılışında salutation property'sinin değeri kullanılır. Bu property bir kez atandı diye bir daha değişmez durumuda değildir.

NonStaticGreetingPrinter printer=new NonStaticGreetingPrinter();

printer.salutation="İyi Misin";
printer.printGreeting("Dünya");
printer.printGreeting("Alem");

printer.salutation="Kötü Müsün";
printer.printGreeting("Evren");
printer.printGreeting("Güneş");

biçiminde salutation değeri değiştirilebilir. Değiştikten sonra ekranda görülen selamlama da değişir. Bunun için object'i tekrar yaramaya gerek de yoktur. NonStaticGreeter classında salutation property'si tanımlanırken default bir değer verilebilir.

String salutation="Merhaba";

O zaman en başta bir değer atamadan da kullanılabilir.

NonStaticGreetingPrinter printer=new NonStaticGreetingPrinter();
printer.printGreeting("Dünya");
printer.printGreeting("Alem");

Dosya Listesi

İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır