⬅️ Bosh sahifaga
1 / 12

📚 Python'da OOP

Obyektga yo'naltirilgan dasturlash

Class va Object tushunchasi

Assalomu alaykum, yosh dasturchilar! 😊
Bugun biz Python'ning eng muhim mavzusini o'rganamiz

🤔 OOP nima?

OOP — bu dasturlash paradigmasi bo'lib, unda ma'lumotlar va ular bilan ishlovchi funksiyalar bir butun sifatida (obyekt sifatida) tashkil qilinadi.

OOPning asosiy afzalliklari:

💡 Real hayotdan misol: Mashina zavodida har bir mashina bir xil chizmaga ko'ra yasaladi, lekin har birining o'ziga xos rangi, modeli bo'ladi!

🧩 OOPning asosiy tushunchalari

Class (Sinf)

Obyektlar uchun shablon.
Masalan: "Mashina" sinfi

Object (Obyekt)

Sinfdan yaratilgan konkret nusxa.
Masalan: "Toyota" obyekti

Atributlar

Obyektning xususiyatlari.
Masalan: mashina rangi

Metodlar

Obyektning harakatlari.
Masalan: mashina yurishi

💻 Birinchi kod misoli

# Class yaratish
class Mashina:
    def __init__(self, rang, model):
        self.rang = rang
        self.model = model
    
    def yuri(self):
        print(f"{self.rang} {self.model} yurdi!")

# Obyekt yaratish
mashina1 = Mashina("Qizil", "Toyota")
mashina1.yuri()  # Qizil Toyota yurdi!

📝 Bu yerda:

  • Mashina — sinf (class)
  • mashina1 — obyekt (object)
  • __init__ — konstruktor metodi

🎯 Birinchi mashq

✏️ Vazifa:
  • Talaba nomli sinf yarating
  • ism va yosh atributlariga ega bo'lsin
  • Bitta obyekt yarating va atributlarini chiqaring

Vaqt: 5 daqiqa

# Sizning kodingiz shu yerga...
class Talaba:
    def __init__(self, ism, yosh):
        # Bu yerga kod yozing
        pass

🏗️ Class va Object yaratish

Kitob sinfi misoli:

class Kitob:
    def __init__(self, nomi, muallif):
        self.nomi = nomi
        self.muallif = muallif

# Obyektlar yaratish
kitob1 = Kitob("Alpomish", "Xalq ertagi")
kitob2 = Kitob("O'tgan kunlar", "Abdulla Qodiriy")

print(kitob1.nomi, kitob1.muallif)  # Alpomish Xalq ertagi
print(kitob2.nomi, kitob2.muallif)  # O'tgan kunlar Abdulla Qodiriy

💡 Bir sinfdan bir nechta obyekt yaratish mumkin!

⚙️ Metodlar bilan ishlash

class Kitob:
    def __init__(self, nomi, muallif):
        self.nomi = nomi
        self.muallif = muallif
    
    def malumot(self):
        return f"Kitob: {self.nomi}, Muallif: {self.muallif}"

kitob1 = Kitob("Alpomish", "Xalq ertagi")
print(kitob1.malumot())  # Kitob: Alpomish, Muallif: Xalq ertagi

🔧 Metodlar — obyektning qila oladigan harakatlari!

📊 Atributlar turlari

1. Sinf atributlari (umumiy):

class Universitet:
    # Sinf atributi (umumiy)
    nom = "TATU"
    
    def __init__(self, talaba_ism):
        self.talaba_ism = talaba_ism

talaba1 = Universitet("Sardor")
print(f"{talaba1.talaba_ism} {Universitet.nom}da o'qiydi.")

2. Obyekt atributlari (alohida):

class Hayvon:
    def __init__(self, turi, yosh):
        self.turi = turi  # Obyekt atributi
        self.yosh = yosh  # Obyekt atributi

🎮 Metodlar bilan boshqarish

class Talaba:
    def __init__(self, ism, baho):
        self.ism = ism
        self.baho = baho
    
    def baho_korsat(self):
        return f"{self.ism}ning bahosi: {self.baho}"
    
    def baho_ozgartir(self, yangi_baho):
        self.baho = yangi_baho
        return f"{self.ism}ning yangi bahosi: {self.baho}"

talaba = Talaba("Ali", 85)
print(talaba.baho_korsat())        # Alining bahosi: 85
print(talaba.baho_ozgartir(90))    # Alining yangi bahosi: 90

💪 Amaliy mashqlar

📱 Mashq 1: Telefon sinfi

Telefon nomli sinf yarating, u marka va narx atributlariga ega bo'lsin.

👨‍🎓 Mashq 2: O'quvchi sinfi

Oquvchi sinfi yaratib, malumot metodini qo'shing.

🚗 Mashq 3: Mashina sinfi

tezlik_oshir metodini yaratib, tezlikni boshqaring.

Har bir mashq uchun 8-9 daqiqa vaqt!

🏠 Uyga vazifa

📚 Vazifa 1: Kitobxona sinfi
  • Kitobxona sinfi yarating
  • nomi va kitoblar_soni atributlari
  • kitob_qosh metodi (kitoblar sonini oshiradi)
👨‍🎓 Vazifa 2: Talaba sinfi
  • ism va kurs atributlari
  • kurs_oshir metodi
🚙 Vazifa 3: Mashina sinfi
  • model va yil atributlari
  • malumot metodi
  • Ikkita obyekt yarating

🎉 Ajoyib!

Bugun nimalarni o'rgandik?

🏗️ Class (Sinf)

Obyektlar uchun shablon

📦 Object (Obyekt)

Sinfdan yaratilgan nusxa

🏷️ Atributlar

Obyektning xususiyatlari

⚙️ Metodlar

Obyektning harakatlari

Keyingi darsda: Class atributlari, instance atributlari, __init__ metodi

Savollaringiz bo'lsa, yozib qoldiring! 😊