Java Programlama Dili: Nesne Yönelimli Programlama (OOP)
Java programlama dili, günümüz yazılım dünyasının temel taşlarından biridir ve nesne yönelimli programlama (OOP) prensiplerini benimseyerek yazılım geliştirmeyi kolaylaştırır, daha düzenli ve sürdürülebilir hale getirir. Nesne yönelimli programlama, gerçek dünyadaki nesneleri ve onların etkileşimlerini modelleyerek karmaşık yazılım projelerini yönetilebilir parçalara ayırmayı sağlar.
- Bu dersin sonunda, nesne yönelimli programlamanın temel prensiplerini (kapsülleme, miras, çok biçimlilik) Java dilinde nasıl uygulayacağınızı anlayacaksınız.
- Bu dersin sonunda, Java’da sınıf ve nesne tanımlayabilecek, nesneler arasında ilişki kurabileceksiniz.
- Bu dersin sonunda, kalıtım yoluyla kod tekrarını nasıl azaltacağınızı ve daha esnek sistemler oluşturacağınızı öğreneceksiniz.
- Bu dersin sonunda, arayüzler ve soyut sınıflar aracılığıyla çok biçimliliği nasıl kullanacağınızı kavrayacaksınız.
- Nesne Yönelimli Programlama (OOP): Yazılım geliştirmede nesneleri temel alan bir yaklaşımdır.
- Sınıflar ve Nesneler: Sınıflar nesnelerin şablonlarıdır, nesneler ise bu şablonlardan oluşturulan örneklerdir.
- Kapsülleme: Veriyi ve metotları bir arada tutarak dışarıdan erişimi sınırlar.
- Miras (Inheritance): Bir sınıfın özelliklerini başka bir sınıfa aktarma mekanizmasıdır.
- Çok Biçimlilik (Polymorphism): Bir nesnenin farklı durumlarda farklı davranışlar sergileyebilmesidir.
Nesne Yönelimli Programlamanın (OOP) Temel İlkeleri
Nesne yönelimli programlama (OOP), yazılım geliştirmede yaygın olarak kullanılan bir yaklaşımdır. Bu yaklaşım, gerçek dünyadaki nesneleri modelleyerek daha modüler, esnek ve yönetilebilir kod yazmayı hedefler. OOP’nin temel prensipleri şunlardır: kapsülleme, miras (kalıtım) ve çok biçimlilik (polimorfizm).
Kapsülleme (Encapsulation)
Kapsülleme, bir sınıfın verilerini (özelliklerini) ve bu verilere erişen metotları bir araya getirme işlemidir. Bu sayede, sınıfın iç yapısı dış dünyadan gizlenir ve verilere doğrudan erişim engellenir. Bu, veri bütünlüğünü korur ve sınıfın daha güvenli olmasını sağlar.
public class Ogrenci {
private String ad;
private int yas;
public String getAd() {
return ad;
}
public void setAd(String ad) {
this.ad = ad;
}
public int getYas() {
return yas;
}
public void setYas(int yas) {
if (yas > 0) {
this.yas = yas;
}
}
}
Yukarıdaki örnekte, ad ve yas değişkenleri private olarak tanımlanmıştır. Bu, bu değişkenlere sadece sınıf içinden erişilebileceği anlamına gelir. Dışarıdan erişim için ise getAd(), setAd(), getYas() ve setYas() metotları kullanılır.
📚 İlgili konu: MySQL Veri Tabanı Kurulumu ve Kullanımı
Miras (Inheritance)
Miras, bir sınıfın (alt sınıf veya çocuk sınıf) başka bir sınıfın (üst sınıf veya ana sınıf) özelliklerini ve metotlarını devralmasıdır. Bu, kod tekrarını önler ve daha düzenli bir sınıf hiyerarşisi oluşturmayı sağlar. Alt sınıf, üst sınıfın özelliklerini ve metotlarını kullanabilir ve kendi özel özelliklerini ve metotlarını ekleyebilir.
public class Calisan {
private String ad;
private String soyad;
public Calisan(String ad, String soyad) {
this.ad = ad;
this.soyad = soyad;
}
public String getAd() {
return ad;
}
public String getSoyad() {
return soyad;
}
}
public class Mudur extends Calisan {
private String departman;
public Mudur(String ad, String soyad, String departman) {
super(ad, soyad);
this.departman = departman;
}
public String getDepartman() {
return departman;
}
}
Bu örnekte, Mudur sınıfı Calisan sınıfından miras almıştır. Mudur sınıfı, Calisan sınıfının ad ve soyad özelliklerini ve metotlarını devralır ve kendi departman özelliğini ekler.
Çok Biçimlilik (Polymorphism)
Çok biçimlilik, bir nesnenin farklı türlerde davranabilme yeteneğidir. Bu, özellikle miras ve arayüzler (interfaces) ile birlikte kullanıldığında çok güçlü bir özelliktir. Çok biçimlilik sayesinde, aynı metot çağrısı farklı nesnelerde farklı sonuçlar üretebilir.
public interface Hayvan {
public void sesCikar();
}
public class Kedi implements Hayvan {
@Override
public void sesCikar() {
System.out.println("Miyav!");
}
}
public class Kopek implements Hayvan {
@Override
public void sesCikar() {
System.out.println("Hav!");
}
}
public class Main {
public static void main(String[] args) {
Hayvan kedi = new Kedi();
Hayvan kopek = new Kopek();
kedi.sesCikar(); // Miyav!
kopek.sesCikar(); // Hav!
}
}
Bu örnekte, Hayvan arayüzü sesCikar() metodunu tanımlar. Kedi ve Kopek sınıfları bu arayüzü uygular ve sesCikar() metodunu kendi türlerine göre farklı şekillerde gerçekleştirir. Main sınıfında, Hayvan türünde değişkenler kullanılarak farklı nesnelerin sesCikar() metotları çağrılır ve her nesne kendi türüne özgü sesi çıkarır.
Java’da Sınıflar ve Nesneler
Java’da her şey sınıflar ve nesneler etrafında döner. Sınıflar, nesnelerin şablonlarıdır; nesneler ise bu şablonlardan oluşturulan örneklerdir. Bir sınıf, nesnenin özelliklerini (değişkenlerini) ve davranışlarını (metotlarını) tanımlar.
Sınıf Tanımlama
Bir sınıf tanımlamak için class anahtar kelimesi kullanılır. Sınıfın adı, büyük harfle başlar ve sınıfın amacını yansıtan bir isim olmalıdır.
public class Araba {
// Özellikler
String marka;
String model;
int yil;
String renk;
// Metotlar
public void calistir() {
System.out.println("Araba çalıştı.");
}
public void durdur() {
System.out.println("Araba durdu.");
}
}
Bu örnekte, Araba sınıfı tanımlanmıştır. Sınıfın özellikleri (marka, model, yil, renk) ve metotları (calistir(), durdur()) tanımlanmıştır.
Nesne Oluşturma
Bir sınıftan nesne oluşturmak için new anahtar kelimesi kullanılır. Nesne oluşturulduktan sonra, nesnenin özelliklerine ve metotlarına erişilebilir.
public class Main {
public static void main(String[] args) {
Araba araba1 = new Araba();
araba1.marka = "BMW";
araba1.model = "320i";
araba1.yil = 2020;
araba1.renk = "Beyaz";
System.out.println("Araba markası: " + araba1.marka);
araba1.calistir();
}
}
Bu örnekte, Araba sınıfından araba1 adında bir nesne oluşturulmuştur. Nesnenin özelliklerine değerler atanmış ve calistir() metodu çağrılmıştır.
İlgili Aramalar
- Java OOP nedir?
- Java sınıf nasıl oluşturulur?
- Java kalıtım örnekleri
Bir okul yönetim sistemi düşünün. Öğrenci, öğretmen ve ders gibi farklı nesneler vardır. Her nesnenin kendine özgü özellikleri ve davranışları vardır. OOP prensiplerini kullanarak, bu sistemi daha düzenli ve yönetilebilir bir şekilde modelleyebilirsiniz.
📚 Bu dersi de inceleyin: Web Geliştirme: HTML, CSS ve JavaScript ile Dinamik Siteler
| Kavram | Açıklama | Örnek |
|---|---|---|
| Sınıf | Nesnelerin şablonu | Araba, Öğrenci, HesapMakinesi |
| Nesne | Sınıfın örneği | araba1, ogrenci1, makine1 |
| Metot | Nesnenin davranışı | calistir(), kaydet(), topla() |
Kullanıcılar Şunu da Sordu
- Java’da OOP ne işe yarar?
- OOP prensipleri nelerdir?
- Java’da polimorfizm nasıl kullanılır?
Öğrendiklerinizi Pekiştirin
Java’da nesne yönelimli programlama (OOP) prensiplerini anlamak, etkili ve sürdürülebilir yazılım geliştirmenin temelidir. Bu prensipleri doğru uygulayarak, daha karmaşık projeleri bile kolayca yönetebilirsiniz. Kapsülleme, kalıtım ve çok biçimlilik, OOP’nin sunduğu güçlü araçlardır.
- Kapsülleme nedir ve neden önemlidir?
- Miras (Kalıtım) kavramını bir örnekle açıklayınız.
- Çok biçimlilik (Polimorfizm) ne anlama gelir ve nasıl kullanılır?
- Bir sınıf ve nesne arasındaki farkı açıklayınız.
- OOP Temel İlkeleri: Kapsülleme, Miras, Çok Biçimlilik.
- Sınıflar ve Nesneler: Sınıflar şablon, nesneler örneklerdir.
- Kapsülleme: Veri güvenliğini sağlar.
- Miras: Kod tekrarını azaltır.
- Çok Biçimlilik: Esneklik ve uyarlanabilirlik sağlar.



