Java OOP-2
Merhabalar,
Bu yazımda kendi anladığım kadarıyla aşağıdaki kavramları açıklayacağım.
- Getter — Setter
- this Kavramı
- static ve Final Kavramı
- Constructor (Yapıcılar)
Getter ve Setter Kavramları
Java’da başka bir classta tanımlanmış olan private değişkenlerin kullanılmasını sağlayarak data encapsulation durumunun sağlanmasına olanak tanıyan metodlara Setter ve Getter denir. Sözlük karşılığı tam olarak get almak ve set vermektir.
Get bir return değeri dönderirken Set return değeri döndermez.
public class Person {
String name;
int age;
}
İlgili tanımlama sonrasında sınıfın içindeyken sağ tık yaparak açılan pencereden Generate sekmesine tıklayın. Açılan pencerede hangi değişkenler için Getter ve Setter oluşturulacağı seçilir.
public class Person {
String name;
int age;
public String getName() {
return isim;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
japublic void setAge(int age) {
this.age = age;
}
}
NOT: Get metodu return ile çalışabildiği için system.out.println kısmında hata vermez, ancak set metodunu burada yazamayız.
Get İlker Yelekçioğlu’s stories in your inbox
Join Medium for free to get updates from this writer.
Setter ve getter metodlarının kullanımı ve oluşturması bu şekildedir.
Java’da this Kavramı
Java dilinde kullanılan anahtar kelimelerden birisi de “this” kelimesidir. this anahtar kelimesi o anda hangi nesne üzerinde işlem yapılıyorsa o nesnenin referansını döndürür. this kelimesi isim çakışmaları olduğu durumlarda bir yerel değişkenin değil de, nesne değişkeninin kullanılacağını belirtmek için kullanılabilir.
public class Ogrenci {
private int number;
private String name;
public Ogrenci(int number, String name) {
this.number = number;
this.name = name;
}
}this kelimesini static bir metot içerisinde kullanamayız. Static metotlar bir nesneye değil sınıfın kendisine ait olduğu için this anahtar kelimesi burada anlamsız kalır, çünkü referans edebileceği bir nesne yoktur.
Constructors (Yapılandırıcılar)
Yapılandırılar (Constructor), sınıf ismi ile aynı ismi taşıyan değer döndürmeyen metotlardır. Parametreli ve parametresiz olabilirler. Yapılandırıcı metotların dönüş tipi yoktur. Yapılandırıcı metot kullanmak zorunda değiliz çünkü derleyici default olarak yapılandırıcı olduğunu varsayar. Yazılımcılar genellikle bu kullanımı tavsiye etmez çünkü sorunlar çıkarabilir.
- Bir sınıfın birden fazla yapılandırıcısı olabilir. (overloading buna örnektir.)
- Bir yapılandırıcı içersinde üst sınıfın yapılandırıcısı super() şeklinde çağırılır.
- Bir sınıfın yapılandırıcısı private olursa, o sınıftan nesne türetilmez. ( erişim belirliyeciler buna örnektir.)
- Bir yapılandırıcı içersinden aynı sınıfın başka bir yapılandıcısı this() şeklinde çağırılabilir.
public class Car {
private String model;
private int distance ;
public Machine(){
this("BMW",6001);
System.out.println("Constructor running!");
}
public Machine(String model){
this(model,0);
System.out.println("Second constructor runnnig!");
this.model = model;
}
public Machine(String model, int distance){
System.out.println("Third constructor running.");
this.model = model;
this.distance = distance;
}}Java’da static ve final Kavramı
Java’da Statik anahtar kelimesine sahip bir değişken veyahut metot, aslında sınıfa ait olan, sınıftan yaratılan objelere ait olmayan anlamına gelir.
- Program başladığında değişkenler için bellekte yer açılır.
- Açılan yerler program sonlandığından silinirler.
- Değişkenler, program çalıştığı sürece 1 kez yaratılırlar.
- Değişkene erişim, ait olduğu sınıfın iznine bağlıdır.
Final anahtar kelimesi, değişkenlere, method’lara ve bazı sınıflara konulabiliyor. Final deyince aklınıza “değiştirilemez”ibaresi gelebilir.Buradan şunu çıkarabiliriz.Final anahtar kelimesini kullanan yapılar, başka herhangi bir değer alamaz çünkü ilk değeri aldığı için değiştirilemez.Final kelimesini 4 alt başlık altında inceleyeceğim.
- Final sınıf değişkenleri: Final olan bir sınıf değişkenine sadece bir kere değer ataması yapılabilir ve bu atama sadece sınıf konstrüktöründe gerçekleşebilir.
- Final metot parametreleri: Final olarak tanımlanmış bir metot parametresine sadece bir kere değer atanabilir. Metot parametrelerinin tamamen final olarak tanımlamış olmalarında büyük fayda vardır. Bu şekilde parametrenin metot bünyesinde değişikliğe ugrama tehlikesi ortadan kaldırılmış olur.
- Final metotlar: Final olan bir metot ne alt sınıflarca yeniden yüklenebilir (method overloading) ne de saklı (hidden) tutulabilir.
- Final sınıflar: Final olan bir sınıf genişletilerek bir alt sınıf oluşturulamaz.
public class Circle{
static final double PI = 3.14; // burada pi sayısını 3,14 e sabitliyoruz. Program içerisinde değiştirmeye çalışıldığında hata verecektir.
int radius;
static int circlearea;
double calculateArea(int r) {
int radius = r;
double areaOfCircle = 2 * PI * radius;
return areaOfCircle;
}
public static void main(String[] args) {
Circle d1 = new Circle();
double result = d1.calculateArea(3);
System.out.println(result);
}
}Constants: Bir değişkenin önüne hem static hemde final deyimleri konulursa o değişken constant olarak tanımlanmış olur. Static ile o değişkenin tek olmasını ve final ile de değiştirilemez olmasını sağlanır. Örnek;
public static final double PI = 3.1415926;
Constantlar büyük harfle yazılır. Constant değişkenler tanımlandıktan ve değer atandıktan sonra projeyi compile ederseniz, compiler değişkenin geçtiği her yere değişkenin değerini yazacak ve o şekilde compile edecektir.








