Sobes.tech
Intern

Obyekt yönümlü proqramlaşdırma nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Obyekt yönümlü proqramlaşdırma (OOP) — bu proqramlaşdırma paradigmasıdır və "obyektlər" anlayışına əsaslanır; bu obyektlər məlumatlar (atributlar) və kod (metodlar) içərə bilər.

OOP-nin əsas prinsipləri aşağıdakılardır:

  • İnkapsulyasiya: Məlumatların və metodların obyekt daxilində gizlədilməsi, onlara yaxşı müəyyən edilmiş interfeys vasitəsilə daxil olmaq.
  • Miras: Bir sinfin (alt sinf) başqa sinfin (üst sinf) xüsusiyyətlərini və davranışlarını miras alma mexanizmi.
  • Polimorfizm: Eyni interfeys vasitəsilə müxtəlif siniflərin obyektləri üçün istifadə etmək imkanı, hər obyekt öz tərzində davranır.
// Swift-də inkapsulyasiya nümunəsi
struct Point {
    private var x: Double
    private var y: Double

    init(x: Double, y: Double) {
        self.x = x
        self.y = y
    }

    func distance(to otherPoint: Point) -> Double {
        let deltaX = self.x - otherPoint.x
        let deltaY = self.y - otherPoint.y
        return sqrt(deltaX * deltaX + deltaY * deltaY)
    }
}

let p1 = Point(x: 0, y: 0)
let p2 = Point(x: 3, y: 4)
// print(p1.x) // Kompilyasiya xətası: 'x' giriş mümkün deyil, çünki 'private' qoruma səviyyəsi
print(p1.distance(to: p2)) // Çıxış: 5.0
// Swift-də irs nümunəsi
class Animal {
    func speak() {
        print("Ümumi səs")
    }
}

class Dog: Animal {
    override func speak() {
        print("Hav!")
    }
}

let myDog = Dog()
myDog.speak() // Çıxış: Hav!
// Swift-də polimorfizm nümunəsi

// İrs nümunəsindən Animal və Dog siniflərindən istifadə edirik

func makeAnimalSpeak(animal: Animal) {
    animal.speak()
}

let someAnimal: Animal = Animal()
let aDog: Animal = Dog() // Dog obyekti, lakin Animal kimi qəbul edilir

makeAnimalSpeak(animal: someAnimal) // Çıxış: Ümumi səs
makeAnimalSpeak(animal: aDog) // Çıxış: Hav!

OOP-in üstünlükləri:

  • Kodun təkrar istifadəsi: Miras və kompozisiya vasitəsilə.
  • Oxumaq və saxlamada yaxşılıq: Kod məntiqi vahidlərə (obyektlərə) təşkil olunub.
  • Əlçatanlıq: Polimorfizm yeni obyekt tiplərini asanlıqla əlavə etməyə imkan verir, mövcud kodu dəyişdirmədən.
  • Debug etməyi asanlaşdırır: Problemləri xüsusi obyektlər daxilində izolyasiya etməyə imkan verir.