Java - Yapılandırıcılar ( Constructors )

Pazar, Mart 08, 2015 kustemura 0 Yorum


Java - Methodlar adlı yazımın devamı olarak bu yazı da Yapılandırıcılar(Constractor)'ı anlatacağım.


class Rectangle{
 double width;
 double height;
 double depth;
 double volume {
  return width * height * depth ;
 }
 void setValues(double w , double h , double d){
  width = w;
  height = h;
  depth = d;
 }
}


Burada kullandığımız setValues() methodu uygun ve kullanışlı gözükse de , bu işlemleri nesne ilk oluşturulduğunda yapmak daha özlü ve kullanışlı bir hale getirecektir.Java'da Yapılandırıcılar nesne oluşturulduktan hemen sonra onu ilk kullanıma hazır hale getirirler.
setValues() methodunu bir yapılandırıcı ile değiştirelim.

Parametresiz Yapılandırıcı

class Rectangle{
 double width;
 double height;
 double depth;
 double volume {
  return width * height * depth ;
 }

 Rectangle(){
  width = 15;
  height = 15;
  depth = 15;

 }
}
Sınıf ile aynı isme sahip bir method olduğunu görüyoruz . İşte bu bir yapılandırıcı oluyor. Yapılandırıcılar her zaman bulunduğu sınıf ile aynı isme sahip olmak zorundadır.Aksi takdirde bu bir yapılandırıcı özelliği taşımaz. Burada ki Rectangle() yapılandırıcısının yaptığı iş , oluşturulan nesnelere ilk değer ataması yapmak.Oluşturulan nesnelere varsayılan değer olarak değişkenlerine 15 değeri atanıyor.

Parametreli Yapılandırıcı


class Rectangle{
 double width;
 double height;
 double depth;

 double volume(){
  return width * height * depth;
 }
 Rectangle (double w , double h , double d){
  width = w;
  height = h;
  depth = d;
 }
}

class mainClass{
 public static void main(string args[]){
  Rectangle myRectangle = new Rectangle(5,3,2);
  Rectangle myRectangle2 = new Rectangle(7,5,4);
  System.out.println("Dikdörtgenin Hacmi  myRectangle2 için :  "+myRectangle2.volume());
  System.out.println("Dikdörtgenin Hacmi  myRectangle için : "+myRectangle.volume());

 }
}
Programın Çıktısı :
Dikdörtgenin Hacmi myRectangle2 için : 140
Dikdörtgenin Hacmi myRectangle için  : 30

Ayrı bir setValues() gibi değer atamasını yapacağımız methodlara gerek kalmadan yapılandırıcı ile kodumuzu daha kısa bir halde getirdik.


0 yorum :