Darsliklar Dart Sinflar

Dart Dart Sinflar

Sinflar (classes) — OOP ning amaliy poydevori. OOP darsida ular bilan qisqacha tanishdik; endi sinf tuzilishini, uning maydonlari va metodlarini batafsil ko’rib chiqamiz. Sinfni yaxshi tushunsangiz, keyingi barcha OOP tushunchalari osonlashadi.

Sinf (class)obyektlar yaratish uchun andoza. U obyektning maydonlarini (ma’lumot) va metodlarini (xatti-harakat) bir joyda ta’riflaydi.

Sinf tuzilishi

Sinf ichida maydonlar va metodlar bo’ladi. Mahsulot sinfini quramiz:

class Mahsulot {
  String nomi = "";
  int narxi = 0;

  void korsat() {
    print("$nomi — $narxi so'm");
  }
}

void main() {
  var telefon = Mahsulot();
  telefon.nomi = "iPhone";
  telefon.narxi = 12000000;
  telefon.korsat();
}
iPhone — 12000000 so'm

Bu yerda nomi va narxi — maydonlar, korsat() — metod. Metod obyektning o’z maydonlariga bevosita murojaat qila oladi.

Metod — qiymat qaytaruvchi

Metod return orqali natija qaytarishi mumkin:

class Kvadrat {
  int tomon = 0;
  int yuza() => tomon * tomon;
}

void main() {
  var k = Kvadrat();
  k.tomon = 5;
  print("Yuza: ${k.yuza()}");
}
Yuza: 25

yuza() metodi tomon maydoniga tayanib hisob-kitob qildi. Bu yerda arrow (=>) bilan qisqa metod yozdik.

this kalit so’zi

this chaqirilgan obyektning o’ziga ishora qiladi. U ayniqsa parametr nomi maydon nomi bilan bir xil bo’lganda kerak:

class Talaba {
  int ball = 0;
  void ornat(int ball) {
    this.ball = ball;   // this.ball — maydon, ball — parametr
  }
}

void main() {
  var t = Talaba();
  t.ornat(90);
  print("Ball: ${t.ball}");
}
Ball: 90

this.ball obyektning maydonini, oddiy ball esa parametrni bildiradi. this chalkashlikni bartaraf etadi.

Bir sinf — ko’p obyekt

Bitta andozadan mustaqil obyektlar yaratsa bo’ladi:

class Talaba {
  String ism = "";
  int ball = 0;
}

void main() {
  var a = Talaba()..ism = "Farrux"..ball = 95;
  var b = Talaba()..ism = "Aziz"..ball = 80;
  print("${a.ism}: ${a.ball}");
  print("${b.ism}: ${b.ball}");
}
Farrux: 95
Aziz: 80

E’tibor bering: ..ism = ... kaskad operatori bilan obyektni yaratishning o’zidayoq maydonlarni to’ldirdik. Bu Dart’ning ixcham imkoniyati.

Xulosa

Bu bo’limda sinf tuzilishi (maydon va metodlar), qiymat qaytaruvchi metodlar, this kalit so’zi va kaskad bilan obyekt to’ldirishni ko’rib chiqdik. Sinf — ma’lumot va xatti-harakatni jamlovchi birlik. Keyingi darsda abstrakt sinflarga o’tamiz.