Java - Yapılandırıcılar ( Constructors )
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ı
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 :