Sobes.tech
Intern

Nesne yönelimli programlama (OOP) nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Nesne yönelimli programlama (OOP), "nesneler" kavramına dayanan bir programlama paradigmasıdır; bu nesneler, verileri (özellikler) ve bu verilerle çalışan yöntemleri (fonksiyonlar) içerir.

OOP'nin temel ilkeleri:

  1. Kapsülleme: Verilerin ve yöntemlerin tek bir blokta (nesne) toplanması ve dış ortamdan detayların gizlenmesi. Verilere erişim sadece belirli yöntemler aracılığıyla yapılır.
  2. Miras: Var olan sınıflardan (ebeveynler) yeni sınıflar (çocuklar) oluşturmak, onların özelliklerini ve yöntemlerini miras almak. Kodun yeniden kullanılmasını sağlar ve sınıf hiyerarşileri oluşturur.
  3. Çok Biçimlilik: Farklı sınıflardan nesnelerin aynı çağrıya farklı tepki verme yeteneği. Yöntemlerin yeniden tanımlanması veya protokollerin (arayüzlerin) kullanılmasıyla gerçekleştirilir.

Swift'te örnek:

// Kapsülleme ve temel sınıf örneği
class Car {
    private var speed: Double // Özel özellik (kapsülleme)

    init(initialSpeed: Double) {
        self.speed = initialSpeed
    }

    func accelerate(by factor: Double) {
        speed *= factor // Özel özelliğe erişim yöntemi
    }

    func getCurrentSpeed() -> Double {
        return speed
    }
}

// Miras örneği
class ElectricCar: Car {
    var batteryLevel: Double

    init(initialSpeed: Double, initialBatteryLevel: Double) {
        self.batteryLevel = initialBatteryLevel
        super.init(initialSpeed: initialSpeed) // Ebeveyn sınıfın yapıcı metodunu çağırma
    }

    // Çok biçimlilik örneği (yöntemin yeniden tanımlanması)
    override func accelerate(by factor: Double) {
        if batteryLevel > 10 { // Ek mantık
            super.accelerate(by: factor * 1.1) // Üst sınıfın metodunu çağırma ve modifiye etme
            batteryLevel -= 5
        } else {
            print("Düşük pil, çok hızlanamaz.")
        }
    }
}

// Çok biçimlilik örneği (kullanım)
let myCar: Car = Car(initialSpeed: 50)
let myElectricCar: Car = ElectricCar(initialSpeed: 60, initialBatteryLevel: 100)

// Her iki değişken de Car türünde olmasına rağmen,
// myElectricCar için accelerate() çağrısı yeniden tanımlanmış yöntemi çağırır
myCar.accelerate(by: 1.5)
myElectricCar.accelerate(by: 1.5)
Nesne yönelimli programlama (OOP) nedir? — iOS - sobes.tech