Java Abstraction

sametklou

Java Abstraction

Java'da Abstraction (Soyutlama), nesne odaklı programlama kavramlarından biridir ve objeler arasındaki ilişkileri ve davranışları soyutlayarak daha karmaşık sistemleri basitleştirmeyi sağlar.

Soyutlama Nedir?

Soyutlama, detayları gizleyerek karmaşıklığı azaltmayı hedefler. Bir sınıfın sadece gerekli özellikleri ve davranışları göstermesini sağlayarak diğer detayları saklar. Bu sayede programlama daha modüler, okunabilir ve bakımı daha kolay hale gelir.

Soyut Sınıflar (Abstact Class)

Java'da soyutlama için abstract sınıflar kullanılır. Abstract sınıflar, hem soyut metodları hem de somut metodları içerebilir. Soyut metodlar, sadece imza (signature) tanımlar ve alt sınıfların bu metodları implemente etmesini bekler.

Örnek bir abstract sınıf:

abstract class Sekil {
    private int x;
    private int y;
    
    public Sekil(int x, int y) {
        this.x = x;
        this.y = y;
    }
    
    public abstract double alanHesapla();
}

Soyut Metodlar (Abstact Method)

Abstract sınıflardaki soyut metodların alt sınıflar tarafından implemente edilmesi zorunludur. Bu metodlar, abstract anahtar kelimesi ile tanımlanır ve gövdesiz (body) olmalıdır.

Örnek bir abstract metod:

abstract double alanHesapla();

Soyutlama Kullanımı

Soyutlama, nesne odaklı programlama prensiplerine sadık kalarak daha esnek ve genişletilebilir bir kod yazma imkanı sunar. Alt sınıfların soyut sınıfları genişleterek kendi özelliklerini ve davranışlarını ekleyebilmesi sağlar.

class Daire extends Sekil {
    private double yaricap;
    
    public Daire(int x, int y, double yaricap) {
        super(x, y);
        this.yaricap = yaricap;
    }
    
    @Override
    public double alanHesapla() {
        return Math.PI * yaricap * yaricap;
    }
}

Soyutlama sayesinde farklı tiplerde şekiller oluşturabilir ve bu şekillerin ortak davranışlarını tek bir yerde yönetebiliriz.

Bu yazıda, Java'da Abstraction (Soyutlama) kavramını detaylı bir şekilde inceledik. Soyut sınıflar ve metodlar kullanarak programlama dilinde soyutlama kavramını nasıl uygulayabileceğimizi öğrendik. Bu kavramı anlamak, daha modüler ve esnek kod yazmamıza olanak sağlar.