Java’da OOPs Kavramları

sametklou

Java’da OOPs Kavramları

Java'da Nesne Yönelimli Programlama (OOP) kavramları, Java'nın temelini oluşturur. OOP, verileri ve metodları birlikte gruplamak ve nesne odaklı bir programlama yaklaşımıyla yazılım geliştirmeyi sağlar. Bu yazıda, Java'da OOPs kavramlarını adım adım açıklayacağız ve her bir kavramı kod örnekleri ile detaylı olarak inceleyeceğiz.

1. Sınıflar ve Nesneler

Java'da bir sınıf, benzer özelliklere ve işlevlere sahip nesneleri tanımlamak için kullanılır. Her nesne, bir sınıfın örneğidir ve belirli bir sınıfın özelliklerine ve metodlarına erişebilir.

public class Araba {
    String marka;
    String model;

    public void calis() {
        System.out.println("Araba çalışıyor");
    }
}

Yukarıdaki örnek, Araba adında bir sınıf tanımlar. Araba sınıfının marka ve model adında iki özelliği vardır ve calis adında bir metoduna sahiptir.

2. Kalıtım (Inheritance)

Kalıtım, bir sınıfın başka bir sınıftan özelliklerini ve metodlarını miras almasını sağlar. Bu şekilde kod tekrarı önlenir ve sınıf hiyerarşileri oluşturulabilir.

public class Otomobil extends Araba {
    int hiz;

    public void hizlan(int hizArtis) {
        hiz += hizArtis;
    }
}

Yukarıdaki örnekte, Otomobil sınıfı Araba sınıfını miras alır ve hiz özelliğini ve hizlan metodunu ekler.

3. Polimorfizm (Polymorphism)

Polimorfizm, aynı isimde ancak farklı parametrelerle birden fazla metodun tanımlanabilmesini sağlar. Bu sayede aynı adı taşıyan farklı metodların farklı davranışlar sergilemesi sağlanır.

public class Sekil {
    public void ciz() {
        System.out.println("Şekil çiziliyor");
    }
}

public class Kare extends Sekil {
    public void ciz() {
        System.out.println("Kare çiziliyor");
    }
}

Yukarıdaki örnekte, Sekil sınıfının ciz metodunu Kare sınıfı override ederek farklı davranış göstermesini sağlar.

4. Soyut Sınıflar ve Arayüzler (Abstract Classes and Interfaces)

Soyut sınıflar ve arayüzler, kalıtım yapılarını tasarlamak için kullanılır. Soyut sınıfların içerisinde hem soyut hem de somut metodlar bulunabilirken, arayüzler sadece soyut metodlar içerir.

public abstract class Sekil {
    public abstract double alanHesapla();
}

public interface Cizilebilir {
    void ciz();
}

Yukarıdaki örnekte, Sekil soyut sınıfı alanHesapla metodunu içerirken, Cizilebilir arayüzü sadece ciz metodunu içerir.

Java'da OOPs kavramları, kodun daha temiz, düzenli ve anlaşılabilir olmasını sağlar. Bu kavramları doğru bir şekilde uygulamak, Java'da daha etkili ve güçlü yazılımlar oluşturmanıza yardımcı olacaktır.