Asosiy kontentga o‘tish
Informatik.uz
Bakalavr · 2-kurs1-bob. Ob’ektga yo‘naltirilgan dasturlash

Sinf va ob’ekt

Ob’ektga yo‘naltirilgan dasturlashning asosi — sinf va ob’ekt tushunchalari. Atributlar, metodlar, konstruktor va inkapsulyatsiya tamoyilini Python misolida va amaliy topshiriqlar bilan o‘rganamiz.

1-mavzu / 22 daq o‘qishYangilangan: 27-oktabr, 2026
Mavzular ro‘yxati (1 / 2)

Ob’ektga yo‘naltirilgan dasturlash (OOP) dasturni o‘zaro ta’sirlashuvchi ob’ektlar to‘plami sifatida quradi. Ob’ekt holatga (ma’lumotlar — atributlar) va xatti-harakatga (amallar — metodlar) ega bo‘ladi. Masalan, talaba ob’ektining atributlari — ism va kurs, metodi esa — kursni oshirish.

Sinf — bir turdagi ob’ektlarning umumiy tuzilishini tavsiflovchi andoza; ob’ekt esa sinfning aniq nusxasi (instansiyasi). Bitta sinfdan istalgancha ob’ekt yaratish mumkin, ularning har biri o‘z atributlari qiymatiga ega bo‘ladi. Sinf va ob’ekt munosabati tort retsepti va tayyor tortlarga o‘xshaydi: retsept bitta, tortlar esa ko‘p.

Python’da sinf class Student: qatori bilan e’lon qilinadi. Konstruktor def __init__(self, name, year): ob’ekt yaratilganda avtomatik chaqirilib, atributlarni o‘rnatadi: self.name = name. Bu yerda self — metod ishlayotgan joriy ob’ektning o‘ziga havola. Ob’ekt s = Student("Ali", 2) ko‘rinishida yaratiladi, metod nuqta orqali chaqiriladi (s.promote()), atributga ham shunday murojaat qilinadi (s.year).

OOP ning muhim tamoyillaridan biri — inkapsulyatsiya: ob’ektning ichki holati yashiriladi va faqat metodlar orqali o‘zgartiriladi. Masalan, bank hisobining balansiga to‘g‘ridan-to‘g‘ri qiymat berish o‘rniga deposit(amount) metodi chaqiriladi va u summaning musbatligini tekshiradi. Python’da ichki atribut nomi odatda pastki chiziq bilan boshlanadi (_balance): bu “tashqaridan tegmang” degan kelishuvdir.

Asosiy xulosalar

  • OOP dasturni o‘zaro ta’sirlashuvchi ob’ektlar to‘plami sifatida quradi.
  • Ob’ekt atributlar (holat) va metodlar (xatti-harakat) dan iborat.
  • Sinf — andoza, ob’ekt — sinfning aniq nusxasi; bitta sinfdan ko‘p ob’ekt yaratiladi.
  • Python’da konstruktor __init__, joriy ob’ektga havola esa self.
  • Inkapsulyatsiya ichki holatni himoya qiladi va uni metodlar orqali nazorat qiladi.

Amaliy topshiriqlar

  1. Student sinfini yozing: atributlari name va year, metodlari promote() (kursni 1 ga oshiradi) va info() (talaba haqida matn qaytaradi). Ikkita ob’ekt yarating va metodlarni chaqiring.
  2. BankAccount sinfini yarating: balans ichki atribut (_balance) bo‘lsin; deposit(amount) va withdraw(amount) metodlari summani tekshirsin (manfiy yoki balansdan katta summaga ruxsat bermasin).
  3. O‘zingiz tanlagan sohada (kutubxona, do‘kon yoki o‘yin) ikkita sinf loyihalang: har birining kamida uchta atributi va ikkita metodini sxema shaklida yozing, so‘ng bittasini kodda amalga oshiring.

Mustahkamlash savollari

O‘zingizni sinab ko‘ring: avval o‘ylab ko‘ring, keyin javobni oching.

  1. 1Sinf va ob’ekt o‘rtasidagi farq nima?
    Sinf — tuzilishni tavsiflovchi andoza, ob’ekt esa shu andoza asosida yaratilgan aniq nusxa.
  2. 2`self` parametri nimani bildiradi?
    Metod chaqirilayotgan joriy ob’ektga havolani.
  3. 3Inkapsulyatsiya nima uchun kerak?
    Ichki ma’lumotlarni noto‘g‘ri o‘zgartirishdan himoya qilish va ularni faqat nazorat ostidagi metodlar orqali boshqarish uchun.

0 / 2 mavzu o‘tildi

Kirib belgilash