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:
- Inkapsulyatsiya: Ma'lumotlar va ular bilan ishlovchi metodlarni yagona obyektga (obyekt) jamlash. Obyektning ichki holatini yashiradi va faqat zarur bo'lgan interfeysni ochib beradi.
- Abstraktsiya: Ob'ektning muhim xususiyatlariga e'tibor qaratish, muhim bo'lmagan tafsilotlarni e'tiborsiz qoldirish. Murakkab tizimlarni soddalashtirilgan shaklda taqdim etadi.
- 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.
- 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();
*/