Bilgisayar ve Kodlama

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 Derste Öğrenecekleriniz
  • 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.
📌 Java OOP Hakkında Kısa Bilgiler
  • 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.

Kod Örneği
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.

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.

Kod Örneği
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.

💡 İpucu: Kalıtım kullanırken, alt sınıfın üst sınıfın davranışını değiştirmesine izin veren ‘method overriding’ (metot ezme) özelliğini unutmayın. Bu, kodunuzun daha esnek olmasını sağlar.

Ç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.

Kod Örneği
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.

ℹ️ Bilgi: Arayüzler (Interfaces) ve Soyut Sınıflar (Abstract Classes) çok biçimliliğin önemli araçlarıdır. Arayüzler sadece metot imzalarını içerirken, soyut sınıflar hem metot imzalarını hem de bazı metotların gerçekleştirmelerini içerebilir.

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.

Kod Örneği
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.

Kod Örneği
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
📖 Örnek

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.

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.

✏️ Kendinizi Test Edin
  1. Kapsülleme nedir ve neden önemlidir?
  2. Miras (Kalıtım) kavramını bir örnekle açıklayınız.
  3. Çok biçimlilik (Polimorfizm) ne anlama gelir ve nasıl kullanılır?
  4. Bir sınıf ve nesne arasındaki farkı açıklayınız.
📝 Konu Özeti
  • 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.

Deniz

DersMerkezi.net.tr’nin yazarı, eğitim alanında yıllara dayanan deneyime sahip bir uzmandır ve öğrencilerin öğrenme sürecini desteklemeyi hedefler. Matematik, fen bilimleri, tarih, dil ve edebiyat başta olmak üzere birçok ders alanında içerik üretir ve konuları sade, anlaşılır ve adım adım rehberler halinde sunar.

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu