Java’da herşey sınıflar ve nesnelerden oluşur. Java nesneleri içinde nesne ile birlikte kullan değişkenleri tutan bir alan olarak düşünebiliriz. Bu değişkenleri daha sonra sınıftan nesneleri türeterek kullanırız.
Sınıf: Kendisinden üretilecek nesneler için bir model görevi görür. Bu soyut varlık ile bu varlığa ait olan nesneler türetilir. Aşağıdaki örnekte Kordinat sınıf oluşturulmuştur.
Nesne:Sınıftan oluşturulan varlıkları ifade eder. Aşağıdaki örnekte Kordinat sınıfından istanbul adında bir nesne oluşturulmuştur. Yine aynı Kordinat sınıfı kullanılarak ankara, edirne vb. nesneler de oluşturulabilir.
Basit bir sınıf tanımlamasına bakalım.
Bu sınıf Kordinat ismi ile x ve y adında değişkenlerine sahip olarak tanımlandı.
1 2 3 4 5 6 |
class Kordinat{ int x; int y; } |
Tanımladığımız bu sınıf soyut bir kavram bu sınıf üzerinden nesneler üretmek için new anahtar sözcüğü ile istanbul nesnesini üretiyoruz.
1 2 3 |
Kordinat istanbul = new Kordinat(); |
Bu işlem nesne oluştururken varsayılan kurucu metod(burada her hangi bir değer almadan –Kordinat() ) Kordinat sınıfdan bir nesne oluşturduk. Her sınıf yukarıdaki gibi içi boş olan kurucu metotları olmayabilir. Bazen kendi kurucu metotlarımızı kullanmamız gerekebilir.
Bu durumda kendi constructor (kurucu) metotlarımızı oluşturmamız gerekir. Kendi kurucu metotlarımızı sınıf adı ile aynı metotlar yazarak oluşturabiliriz.
1 2 3 4 5 6 7 8 9 10 11 |
class Kordinat{ int x; int y; Kordinat(int x, int y) { this.x = x; this.y = y; } } |
Artık sınıfımızı oluşturuken new Kordinat() yazarak oluşturamayacağız. Nesne oluşturulurken x ve y değerleri için değer istemektedir. Bu değerleri nesne oluşturulurken new Kordinat(10,15) gibi yazmak zorundayız.
Birden fazla kurucu metot oluşturma şansımız var. Kurucu metot oluştururken sadece şuan dikkat etmek gerekiyor. aynı parametre ve değişken türünde ikinci kez bir kurucu metot tanımlaması yapmayız.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
class Kordinat{ int x; int y; Kordinat() { this(0, 0); } Kordinat(int x, int y) { this.x = x; this.y = y; } } |
Sınıf içindeki bir varlığa, yine sınıf içindeki başka bir varlıktan ulaşmak için this anahtar kelimesi kullanılır. Yukarıdaki kullanımda sınıf varlığı olan x ve y kurucu metot içinde this anahtar kelimesi ile this.x ve this.y olarak ulaşılıp içerisine dışarıdan gelen değerler aktarıldı.
Istanbul nesnesini tanımladıktan sonra x ve y değerlerine ulaşmak için nokta(.) operatörü ile nesnenin özelliklerine ulaşabiliriz.
1 2 3 4 |
istanbul.x=5; istanbul.y=8; |
Public ve Private
Bir sınıfı oluştururken sınıf özelliklerinin dışarıdan ulaşılabilir olup olmadığına iyi karar vermemiz gerekiyor. Eğer sınıf varlıkları dışarıdan ulaşılabilir durumda olacaksa public, dışarıdan ulaşıma kapatılacaksa private olarak tanımlamak gerekmektedir. Java programlama dilinde her hangi bir şey yazılmazsa tüm varlıkla public olarak tanımlanır.
Genelde bir sınıf oluşturulurken değişkenler private ve metotlar public olarak görürüz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
class Kordinat{ private int x; private int y; public Kordinat() { this(0, 0); } public Kordinat(int x, int y) { this.x = x; this.y = y; } } |
Çok güzel açıklanmış, emeğinize sağlık.