Java OOP Giriş

Java'nın temel Obejct-oriented Programming kavramları şunlardır:
  • Abstraction (Soyutlama)
  • Polymorphism (Çok Biçimlilik)
  • Encapsulation (Kapsülleme)
  • Inheritance (Kalıtım Alma)
Nesne oluşturmak için ilk olarak o nesneyi temsil eden sınıf oluşturulmalıdır.
class Person {
 String name;
 int age;
}
Person adlı sınıftan üretilen nesnelerin iki özelliği olduğu yukarıdaki iki değişkenle bildirilmiş oldu; name ve age değişkenleri. Bu değişkenler sınıfın data kısmını barındırmaktadır. Sınıf içerisinde kullanılabilecek bir diğer yapı ise metoddur.

Person sınıfından nesne oluştururken atama yapmak istersek constructor(kurucu) fonksiyon kullanılır. Kurucu fonksiyon ismi, sınıf ismi ile aynıdır:
class Person {
 String name;
 int age;
  
 Person(String name, int age){
  this.name = name;
  this.age = age;
 }
}
Person sınıfından nesne oluşturma işlemi aşağıdaki gibi Main fonksiyonu içinde yapıldı:
Person p1 = new Person("Mike", 30);
p1 nesnesine ait name ve age değerlerini sonrasında değiştirilebilir. Bunun için p1.name = "Tom"; gibi bir işlem yapmak yeterlidir. Nokta(.) operatörü ile nesneye ait özelliklere ulaşılabilir.

Şu ana kadar sınıfta tanımlı olarak sadece bir tane metod görülebilir. Ancak bu nesnede başka yöntemlerde şu anda kullanılabilir. Örneğin equals(), toString() gibi metodları şu an için kullanabiliriz. Bunun sebebi tüm sınıfların Object sınıfından kalıtım almasıdır. 

Bir diğer bilinmesi gereken önemli konu ise Access Modifiers. Türkçe karşılığı olarak erişim belirteçleri diyebiliriz. Toplamda dört access modifiers vardır:
  • public: Her yerden erişilebilir.
  • protected: Sadece kendi sınıfı içinden erişilebilir. Ayrıca kalıtım almış sınıflar ve aynı paket içinde yer alan sınıflar tarafından erişilebilir.
  • private: Yalnızca kendi sınıfı içinde ya da interface(arayüzü) içerisinde erişilebilir
  • no modifier (belirteç yok): Erişim belirteci kullanılmazsa sınıf içinde, aynı pakette ve aynı pakette kalıtım almış sınıflarda kullanılabilir.
Erişim belirteçlerine göre sınıf yeniden düzenlendi ve üç tane daha fonksiyon eklendi. Sınıf içinde bu kez iki tane kurucu metod bulunmakta. Bu durum aynı isimde ve farklı parametrelere sahip metodların aşırı yüklenmesi(overloading) denir. Ayrıca data değişkenleri private olarak belirtildi. Bu kullanım sonucu bu iki değişkene doğrudan sınıf dışında erişmemiz mümkün olmayacaktır. Bu değişkenlerin değerleri dışarıdan sadece metodlar ile değiştirilebilir. Metodlar sınıf dışında her yerde kullanılabilir, public olarak tanımlandığı için.
class Person {
 private String name;
 private int age;
  
 public Person() {
  this.name = null;
  this.age = 0;
 }
  
 public Person(String name, int age){
  this.name = name;
  this.age = age;
 }
  
 public String getName() {
  return this.name;
 }
  
 public void setName(String name) {
  this.name = name;
 }
}
Sayfanın en başında verilmiş olan 4 temel konsept üzerine sonraki yazılarda odaklanacağız.

Hiç yorum yok:

Yorum Gönderme