Sponsor Reklam 


20.09.2008 (07:39)

 static Anahtar Sözcüğü, Keyword 
Bir sınıfın nesnesini üretmeden onun bazı değişkenlerine veya metotlarına erişmek istiyorsak sınıfa ait bu üyeleri static olarak deklare etmemiz gerekmektedir.

Ana sınıfımızda yer alan main metodu da static olarak deklare edilmiştir. Yine aynı amaçla sınıfın örneğini üretmeden programı başlatabilmeyi sağlamakta, static tanımlı main metodunu çağırmaktadır.

Bildiğimiz main metodu:
public static void main(String[] args) {
  // Program çalıştırılınca doğrudan bu metot çağırılır
  // Burada diğer metotlar çağrılabilir
  // Sınıflara ait nesneler üretilebilir
}

static değişkenlere global değişkenler de diyebiliriz.

Eğer bir static değişkene hemen bir atama yapılmadan bazı hesaplamalar yapılarak atama yapılacaksa static blok kullanılmalıdır:

package kodcu.net;

class StaticDemo {

  static int x = 10;
  static int y;

  // Bu static metot degiskenleri carpar
  static int carp (int z) {
    return (x * y * z);
  }

  static {
    y = x + 2;
  }

  // Programda ilk çağrılan ana metodumuz
  public static void main(String[] args) {
    int sonuc = carp(2);
    System.out.println("Sonuç: " + sonuc);
  }

}

Ekran çıktısı şu olacaktır:
Sonuç: 240

Şurada sabit değişkenler için kullanılan final anahtar sözcüğünden bahsetmiştik. static keyword'ünün final ile kullanımı yaygındır. Örneğin Color diye sınıfımızda bazı renkler tanımlanmış olsun ve hem sabit anlamında final hem global anlamında static kullanıldığına dikkat edin:

package kodcu.net;

public class Color {
  public static final int BLACK = 0x000000;
  public static final int GRAY = 0xDDDDDD;
  public static final int WHITE = 0xFFFFFF;
}

Görüldüğü gibi 3 renk sabit ve küresel değişken olarak tanımlanmıştır. Şimdi başka sınıfta bu değişkenlerden birine erişelim ve onu kullanalım:

package kodcu.net;

import java.awt.Graphics;
import java.awt.Canvas;

public class ColorDemo extends Canvas {

  private int x; // x konumu, position x
  private int y; // y konumu, position y
  private int w; // genislik, width
  private int h; // yukseklik, height

  // Constructor
  public ColorDemo(int x, int y, int w, int h) {
    this.x = x;
    this.y = y;
    this.w = w;
    this.h = h;
  }

  // Bu metot cizim yapmayi saglar
  // Graphics sınıfından yararlanır
  // Dikdörtgen çizer
  public void paint(Graphics g) {
    // Renk ayarlanır
    g.setColor(Color.GRAY);
    // Dikdörtgen çizilir
    g.drawRect(x, y, w, h);
  }

}

Görüldüğü gibi Color sınıfının static final tanımlı global sabit değişkeninden faydalanılmıştır.
Imza: admin








Yazilar kaynak gosterilmeden kopyalanamaz © www.kodcu.net // Twitter