Mavzu-5
:
Abstrakt sinflar tashkil etish va
ulardan foydalanish usullari.
Abstraksiya (lot. abstractio – ajratish, mavhumlash)
– 1) butunning tomoni, momenti, boʻlagi, fragmenti,
rivojlana olmagan, bir tomonlama, fragmentar
(abstrakt) narsa; 2) bilishda ob’ektiv reallikdagi
predmet, hodisalarning ikkinchi darajali, uncha
muhim boʻlmagan ayrim xususiyatlari-dan xayolan
uzoqlashtiruvchi va shu asosda ularning eng muhim,
asosiy tomonlarini boʻrttirib koʻrsatuvchi fikriy
model. Narsa va hodisalarning konkret tomon,
belgilaridan uzoqlashish va muhim jihat, belgilarini
ajratish jarayoni abstraksiyalash (mavhumlashtirish),
shu jarayonning natijasi, yakuni, xulosasi esa A.
deyiladi. A. bilishda tushuncha, kategoriya shaklida
namoyon boʻladi. Mavhumlashtirish asosan
tafakkoʻrning muhim xususiyati hisoblansada, lekin
tasavvurda ham abstraksiyaning ayrim elementlarini
uchratish mumkin. Abstraksiyalash jarayonida turli
kategoriyalar, qonun, qonuniyat, sababiyat kabi
mavhum tushunchalar vujudga kelib, bu tushuncha
va kategoriyalar olamni bilishning muhim
yakunlarini, natijalarini qurollarini tashkil etadi.
Olamni oʻrganishda, hodisalarning mohiyatini
ochishda, ular haqida toʻgʻri xulosalar chiqarishda
A. ning ahamiyati katta. Abstraksiyalash miyaning
sof ichki mahsuli emas, u reallikdagi hodisalar
xususiyatini u yoki bu tarzda aks ettirishning
hosilasidir. Reallikdagi har bir predmet bevosita
yoki bilvosita boshqa predmet bilan bogʻliq va u
bilan birga qandaydir umumiylikka ega. Shuning
uchun har bir predmetning faqat oʻziga xos hislatlari
bilan birga umumiy tomonlari ham borki, bular shu
predmetning ma’lum tartibga, qandaydir umumiy
qonuniyatga boʻysunishini koʻrsatadi. Shu umumiy
tomonlarda bir turdagi qator predmetlarning
hammasiga xos boʻlgan xususiyatlar ifodalanadi,
buni faqat predmetning ayrim tomonlarini
mavhumlashtirish, ulardan uzoqlashib, umumiy
tomonlarini aniqlabgina bilish mumkin. A.
jarayonida real predmetlardan ajralib qolish
hodisalari ham koʻp uchraydi, bunda u asosli
xulosalarga emas, balki xato natijalarga, quruq
formula, sxemalarga olib keladi. A. ilm-fan, san’at
uchun reallikni toʻgʻri va chuqur, har tomonlama
bilish quroli boʻlib xizmat qiladi. Falsafa A. va
abstraksiyalashning mohiyati, mazmuni, tabiati,
ahamiyatini eng umumiy shaklda yoritib beradi.
Aning turli xususiy tomonlari mantiq, psixologiyada
ham tahlil etiladi. A. dialektika doirasida talqin
etilganda, "konkretlikdan abstraktlikka oʻtish" va
"abstraktlikdan konkretlikka oʻtish" degan dialektik
bilish usullari asoslab beriladi
OOP(Object Oriented Programming) asoslarini
o'rganish davomida, e'tiborimizni qaratishimiz lozim
bo'lgan bir tushuncha bor. U -
abstraktsiyadur(abstraction). Bugun shu haqida
gaplashib o'tamiz.
Abstraktsiya o'zi nima?
Abstraktsiya obyektga yo'naltirilgan dasturlash
(OOP) tillarining asosiy tushunchalaridan biridir.
Uning asosiy maqsadi foydalanuvchidan keraksiz
ma'lumotlarni yashirish orqali murakkablikni
boshqarishdir. Bu foydalanuvchiga barcha yashirin
murakkablikni tushunmasdan, undan foydalanishga
imkon yaratadi.
Abstraktsiya faqatgina dasturlashga taaluqli bo'lgan
tushuncha emas, uni real hayotimizda ham ko'p
javhalarda kuzatishimiz mumkin. Keling bo'lmasa,
abstraktsiya tushunchasini, kundalik hayotimizda
uchrab turadigan bankomatlardan pul yechish
mavzusiga bog'lab ko'ramiz.
Abstraktsiya va bankomatdan pul olish
Tasavvur qiling siz talabasiz va bugun sizning bank
kartangizga stipendiya tushdi. O'zingizni - o'zingiz
mehmon qilish maqsadida, kartadagi mablag'ni naqd
ko'rinishga keltirish uchun bankomatga tashrif
buyurdingiz. Bankomatdan o'zingizga kerakli
bo'lgan summani belgilab, uni naqd ko'rinishida
qabul qilib oldingiz.
Ushbu jarayonda siz bilishingiz kerak bo'lgan ish bu
- bankomat aparatiga kartani solib, yechilgan pulni
qabul qilish. Sizga bankomat aparati o'zi qanday
ishlaydi va pulni naqdlash jarayoni qanday bo'ladi -
bu ahamiyatsiz. Kimdir bundan xavotirlanib,
bankomat aparatini yaratdi, endi u abstrakt vazifasini
bajaradi va sizga taaluqli bo'lmagan tafsilotlarni
yashiradi. Siz shunchaki ichki dastur haqida hech
qanday bilim talab qilmaydigan oddiy interfeys bilan
o'zaro aloqada bo'lasiz.
Dasturlashda ham shu kabi tushunchalar o'rinli.
Endigi navbatda C# dasturlash tilidan foydalanib
mavzuni yanayam mustahkamlaymiz.
C# dasturlash tilida abstraktsiya
Abstraktsiya tushunchasi asosan sinf va metodlar
uchun foydalaniladi va abstract kalit so'zi yordamida
quriladi.
Abstrakt sinf- bu sodda qilib aytganda cheklangan
sinf. Ya'ni undan obyekt olish taqiqlangan. Unga
kirish uchun, undan voris sinf olish lozim.
Abstrakt metod - bu tanasi mavjud bo'lmagan,
hamda faqatgina abstrakt sinfda ishlovchi metod
hisoblanadi. Uni tanasi esa, voris sinfda taqdim
etiladi.
Endi misollar bilan tanishib chiqamiz.
Example 1
using System;
// abstrakt class 'Hayvonlar'
public abstract class Hayvolar
{
// abstrakt metod 'Ovoz()'
public abstract void Ovoz();
}
// class 'Hayvolar' dan olingan voris class 'Sigir'
public class Sigir : Hayvolar
{
// Qayta ishlangan 'Ovoz()' metodi
public override void Ovoz()
{
Console.WriteLine("Moo");
}
}
class Program
{
static void Main(string[] args)
{
// Sigir obyektini yaratish
Sigir sigir_obj = new Sigir();
// abstrakt metodni chaqirish
sigir_obj.Ovoz();
}
}
Natija: Moo
Ota sinfda joylashgan abstrakt metoddan foydalanish
avvalida override kalit so'zini yozib qo'yish talab
etiladi.
Sinfni abstrakt ko'rinishga keltirish, uning ichida
faqatgina abstrakt metodlari bo'lishi kerakligini
anglatmaydi. Sinfda oddiy metodlardan ham
foydalanish mumkin.
Example 2
using System;
abstract class AbstractClass
{
// Abstrakt bo'lmagan metod
public int AddTwoNumbers(int num1, int num2)
{
return num1 + num2;
}
public abstract int MultiplyTwoNumbers(int num1,
int num2);
}
class VorisClass : AbstractClass
{
public override int MultiplyTwoNumbers(int num1,
int num2)
{
return num1 * num2;
}
}
class Program
{
static void Main(string[] args)
{
VorisClass d = new VorisClass();
Console.WriteLine($"Yig'indi:
{d.AddTwoNumbers(4, 6)}, Ko'paytma:
{d.MultiplyTwoNumbers(6, 4)}");
}
}
Natija: Yig'indi: 10, Ko'paytma: 24
http://fayllar.org
Dostları ilə paylaş: |