Sobes.tech
Intern

Obyektga yo'naltirilgan dasturlash nima?

sobes.tech AI

AIdan javob

Obyektga yo'naltirilgan dasturlash (OOP) — bu "obyektlar" konseptsiyasiga asoslangan dasturlash paradigmasi bo'lib, ular ma'lumotlarni (maydonlar shaklida, odatda atributlar yoki xususiyatlar deb ataladi) va kodni (protseduralar shaklida, ko'pincha metodlar yoki xulq-atvorlar deb ataladi) o'z ichiga olishi mumkin.

OOPning asosiy prinsiplari:

  1. Inkapsulyatsiya: Ma'lumotlar va ular bilan ishlovchi metodlarni yagona obyektga (obyekt) jamlash. Obyektning ichki holatini yashiradi va faqat zarur bo'lgan interfeysni ochib beradi.
  2. Abstraktsiya: Ob'ektning muhim xususiyatlariga e'tibor qaratish, muhim bo'lmagan tafsilotlarni e'tiborsiz qoldirish. Murakkab tizimlarni soddalashtirilgan shaklda taqdim etadi.
  3. Merosi: Bir sinf (merosxo'r yoki voris sinf) boshqa sinf (asl yoki asosiy sinf) xususiyatlari va metodlarini meros qilib olishini ta'minlovchi mexanizm. Kodni qayta ishlatishni rag'batlantiradi.
  4. Polimorfizm: Bir xil interfeysni turli asosiy ma'lumot turlari uchun ishlatish imkoniyati. Turli sinflarga mansub obyektlar, metod chaqiruviga turlicha javob berishi mumkin, bu ularning aniq turiga bog'liq.

C#da OOPning qo'shimcha tushunchalari:

  • Sinf: Ob'ektlar yaratish uchun shablonlar yoki reja. Ob'ektlarning tuzilishi va xulq-atvorini belgilaydi.
  • Obyektlar: Xotirada sinfning nusxalari.
  • Interfeyslar: Bu interfeysni amalga oshiradigan sinf bajarishi kerak bo'lgan a'zolar to'plamini (metodlar, xususiyatlar, voqealar) belgilovchi shartnomalar. Abstraktsiya va ko'p bajara oladigan implementatsiyalarni ta'minlaydi.

OOPning afzalliklari:

  • Kodni qayta ishlatish.
  • Kodning modulyatsiyasi va tashkiloti yaxshilanadi.
  • Katta tizimlarni texnik xizmat ko'rsatish va kengaytirishni osonlashtiradi.
  • Ob'ektlar orqali real dunyo bilan yaxshiroq mos keladi.

Misol:

// Sinf misoli
public class Dog
{
    // Maydon (atribut)
    public string Name { get; set; }

    // Metod (xulq-atvor)
    public void Bark()
    {
        Console.WriteLine($"{Name} Woof deb aytadi!");
    }
}

// Ob'ekt yaratish va foydalanish misoli
/*
Dog myDog = new Dog(); // Dog sinfidan obyekt yaratish
myDog.Name = "Buddy"; // atribut qiymatini belgilash
myDog.Bark(); // metodni chaqirish

Dog anotherDog = new Dog { Name = "Lucy" }; // boshqa usulda obyekt yaratish va boshlang'ich qiymat berish
anotherDog.Bark();
*/