Sobes.tech
Intern

Obyektga yo'naltirilgan dasturlash nima?

sobes.tech AI

AIdan javob

Obyektga yo'naltirilgan dasturlash (OOP) — bu dasturlash paradigmasi bo'lib, u "obyektlar" kontseptsiyasiga asoslangan bo'lib, ular ma'lumotlar (atributlar) va kod (usullar)ni o'z ichiga olishi mumkin.

OOP ning asosiy prinsiplari quyidagilardan iborat:

  • Inkapsulyatsiya: Ma'lumotlar va usullarni obyekt ichida yashirish, ularga yaxshi belgilangan interfeys orqali kirish.
  • Merosi: Bir sinf (voris sinf) boshqa sinf (asl sinf) xususiyatlari va xulq-atvorini meros qilib olish imkonini beradigan mexanizm.
  • Polimorfizm: Bir xil interfeysni turli sinflarga tegishli obyektlar uchun ishlatish imkoniyati, har bir obyekt o'z usulida harakat qiladi.
// Swiftda inkapsulyatsiya misoli
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) // Kompilatsiya xatosi: 'x' kirish mumkin emas, chunki 'private' himoya darajasi
print(p1.distance(to: p2)) // Chiqish: 5.0
// Swiftda meros misoli
class Animal {
    func speak() {
        print("Umumiy tovush")
    }
}

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

let myDog = Dog()
myDog.speak() // Chiqish: Vov!
// Swiftda polimorfizm misoli

// Meros misolidan Animal va Dog sinflaridan foydalanamiz

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

let someAnimal: Animal = Animal()
let aDog: Animal = Dog() // Dog obyekti, lekin Animal sifatida ko'rib chiqiladi

makeAnimalSpeak(animal: someAnimal) // Chiqish: Umumiy tovush
makeAnimalSpeak(animal: aDog) // Chiqish: Vov!

OOP ning afzalliklari:

  • Kodning qayta ishlatilishi: Meros va kompozitsiya orqali.
  • Yaxshiroq o'qilishi va saqlanishi: Kod mantiqiy birliklar (obyektlar) shaklida tashkil etilgan.
  • Moslashuvchanlik: Polimorfizm yangi obyekt turlarini qo'shishni osonlashtiradi, mavjud kodni o'zgartirmasdan.
  • Xatolarni aniqlash osonroq: Muammolarni ma'lum obyektlar ichida izolyatsiya qilish imkonini beradi.