15 Ekim 2009 Perşembe

JavaFX de değişkenler

JavaFX değişkenleri iki tipdir. Bunlar "var" ve "def" dir. Var variable (değişkenin) kısaltılmışı def (define) tanımlamaktır. "var" kullanımı değişkenin değerinin ileride değişebileceğini gösterir. Örneğin "var ortalama = 10.0" ilerde "ortalama = 25.0" olabilir. "def" ise farklı ele alınır. "def" de değişkene ilk değer atanmak zorundadır ve ilerde programcı tarafından değeri değiştirecek bir atama yapılmayacağı garanti edilir. Örneğin:
var ortalama; // ortalamaya ilk değer atanmak zorunda değil.
def euro=2.47; // İlk değer hemen atanmalı.
def dolar; // Derleyici hata verir. İlk değer hemen atanmalı.
euro = 2.13; // Derleyici hata verir. Def olarak atanmış değişken'e değer atanamaz.
JavaFX'in güçlü özelliklerinden biri de binding (bağlanma) mekanizmasıdır. Bu mekanizma değişken başka bir değişkene ya da kod parçasına bağlanabilir. Örnek:
var  fizik_notu = 5.6;
var  kimya_notu = 7.2;
var toplam = bind  fizik_notu + kimya_notu;
Bu örnekte fizik ve/veya kimya notu değeri ne zaman değişirse toplam değişkeni tekrar hesaplanıp güncellenir. "def" bu örnekte önem kazanır. "def"'i bind ile güncel tutabiliriz. Bunun ne anlamı var diye sorabilirsiniz. Şöyle ki değişkeni başka biri değiştiremesin ama bazı durumlar da değişsin istiyorsunuz diyelim. "var" ile değişken değeri yanlışlıklada olsa değişebilir(kodu devir alan başka programcı ya da uykusu gelmiş olan sizin tarafınızdan). Ama "def" kullanırsak da değişkeni değiştiremeyiz. Fakat "def" i bir kod parçasına bağlarsak hem otomatik güncellenir hem de siz yada başkası yanlışlıkla değiştiremez. Bu durum gerçek hayatta bize başka bir ortamdan (veritabanı, internet) dolar kurunu alan bir kod yazarak "def" değişkenine bağlama ve böylece hem güncel kalıp hem de yanlışlık değişmesi olasılığından kurtulma açısından fayda sağlar. "def" 'in bir faydası da derleyicinin çeşitli optimizasyonlar uygulamasına fırsat verir. Değişkene sonradan değer atarsanız değer atanana kadar değişkenin tipi bellirli değildir. Atama yapılınca yapılan atamaya göre değişken tipi bellirlenmiş olur. Sert kodlanan dillerde değişkenin tipi hemen belirtilmelidir. Değişken tipi atama yapmadan önce de belirlenebilir. Değişken tipleri aşağıdaki gibidir.
  • Integer
  • Long
  • Short
  • Byte
  • Number
  • Double
  • Float
  • String
  • Array
  • Sequence
  • Herhangi bir java sınıfı (JButton v.s.)
Örnek:
var teker_sayısı: Integer = 4;
var PI:Number = 3.14;
var urun_adi:String = "Merck";
var kayit_dosyasi:File;
Gördüğünüz gibi değişken isminin önüne ":" işareti getirerek değişken tipini belirleyebilirsiniz. Number tipi her zaman floattır. Bu durum cep telefonları ile uyumluluk adına belirlenmiştir. Sequence JavaFX'e özel bir değişken tipidir. Integer, short, byte, float, double java daki ile aynıdır. String sınıf olarak değil değişken tipi olarak ele alınır. Sequenceler dizilere benzerler ancak JavaFX de dil tarafından desteklenen bazı ilginç özelliklere sahiptirler. Sequenceleri diğer yazılarımda ayrı olarak ele alacağım. Son olarak bir örnek vererek bir özellikten daha bahsedeceğim.
var x =23;
def y =145;
var a = {  var b =10;
              var c =x+y;
              c/b;
            }
Bu kod parçasında son ifadenin değeri a değişkenine atanır. Aynı durum "def" ve bind ile bağlanmış değişkenler içinde geçerlidir. Blok yazımın avantajı okunabilirliği anlatır. Blok içinde tanımlanan b ve c değişkeni blok dışında geçersizdir. Yani bu değişkenlere erişilemez ve derleyici hata verir. Değişkenlerin geçerlilik alanını sonraki yazımda işlemeyi düşünüyorum. O zamana kadar esen kalın.