Dart tiliga kirish O'zgaruvchilar va konstantalar Primitiv ma'lumotlar turlari


Download 374.15 Kb.
bet20/35
Sana11.05.2023
Hajmi374.15 Kb.
#1454719
1   ...   16   17   18   19   20   21   22   23   ...   35
Bog'liq
3-mustaqil ish

Abstrakt sinflar va usullar

Abstrakt sinflar


Abstrakt sinflar mavhum kalit so'z bilan belgilangan sinflarni ifodalaydi:


1
2

abstract class Figure {
}

Abstrakt sinflar oddiy sinflarga o'xshaydi (ular maydonlarni, usullarni, konstruktorlarni ham belgilashi mumkin), bundan tashqari biz uning konstruktori yordamida mavhum sinf ob'ektini bevosita yarata olmaymiz.




1
2
3
4

void main (){
// Figure ellipse = Figure(); // так сделать нельзя - класс Figure - абстрактный
}

Qoida tariqasida, mavhum sinflar haqiqatda aniq timsolga ega bo'lmagan ob'ektlarni tavsiflaydi. Masalan, geometrik shakl aylana, kvadrat, uchburchakni ifodalashi mumkin, lekin bunday geometrik shakl o'z-o'zidan mavjud emas. Biz ishlayotgan aniq raqamlar bor. Shu bilan birga, barcha raqamlar qandaydir umumiy funktsiyalarga ega bo'lishi mumkin, masalan, perimetrni, maydonni va boshqalarni hisoblash usullari.




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

void main (){
Figure rect = Rectangle(20, 30);
rect.calculateArea();
}
abstract class Figure {
void calculateArea(){
print("Not Implemented");
}
}
class Rectangle extends Figure{
int width;
int height;
Rectangle(this.width, this.height);
void calculateArea(){
int area = width * height;
print("area = $area");
}
}

Bu erda mavhum geometriya klassi konsolga shakl maydonini chop etadigan accountArea () usulini belgilaydi. Rectangle klassi ushbu usul uchun o'zining amalga oshirilishini belgilaydi.


Abstrakt usullar


Yuqoridagi misolda, tayanch klassdagi Figure Area usuli hech qanday foydali ish qilmaydi, chunki mavhum shaklning maydoni bo'lishi mumkin emas. Va bu holda, bunday usul mavhum sifatida yaxshiroq aniqlanadi:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

void main (){
Figure rect = Rectangle(20, 30);
rect.calculateArea();
}
abstract class Figure {
void calculateArea();
}
class Rectangle extends Figure{
int width;
int height;
Rectangle(this.width, this.height);
void calculateArea(){
int area = width * height;
print("area = $area");
}
}

Mavhum usul oddiy usul bilan bir xil tarzda aniqlanadi, faqat usul tanasi o'rniga parametrlar ro'yxatidan keyin nuqta-vergul qo'yiladi: void accountArea () ;.


Shuni ta'kidlash kerakki, mavhum usullarni faqat mavhum sinflarda aniqlash mumkin. Bundan tashqari, agar asosiy sinf mavhum usulni aniqlasa, hosila sinf uni amalga oshirishi kerak, ya'ni usulning tanasini aniqlaydi.




Download 374.15 Kb.

Do'stlaringiz bilan baham:
1   ...   16   17   18   19   20   21   22   23   ...   35




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling