1-Amaliy mashg’ulot. Voris sinflarni yaratish va foydalanish. Ishning maqsadi


Download 46.81 Kb.
bet1/3
Sana18.10.2023
Hajmi46.81 Kb.
#1707672
  1   2   3
Bog'liq
1-amaliy


1-Amaliy mashg’ulot. Voris sinflarni yaratish va foydalanish.
Ishning maqsadi: Talabalarda voris sinflar yaratish va ulardan foydalanish ko’nikmasini hosil qilish.
Vorislik o’rnatilishida avlod sinf mavjud bo’lib, ishlashi uchun ona sinfning barcha a’zolari public yoki protected atributi orqali berilishi kerak.
Bazali sinfga misol sifatida quyidagini (8.8-listing) keltirishimiz mumkin:


8.8-listing
class Avto // Avtomobil
{
const int maxTezlik = 90; // Avtomobil tezligining maksimumi
int AvtoTezlik; // Maydon
public int Tezlik // Xossa (umumruxsatli bo'lishi kerak)
{
get { return AvtoTezlik; }
set
{
AvtoTezlik = value; 
if (AvtoTezlik > maxTezlik) // Avtomobil tez-ligini nazorat qilish
AvtoTezlik = maxTezlik;
}
} // Tezlik
}//Sinf

Bu yerdagi Avto sinfida mashina tezligini ko’rsatuvchi AvtoTezlik maydonidan iborat. Tezlik xossasi yaratilishi asosida, foydalanuvchi tomonidan kiritilgan maksimal tezlik qiymatini, xossa orqali (set) konstanta hisoblangan maxTezlik bilan tekshirish yotadi. Agar ushbu holat yuz bersa, maksimal tezlik qiymati foydalanuvchi tomonidan kiritilgan qiymat bilan tenglashtiriladi.


Endi yangi sinf yaratamiz, unda Avtomobil markasini tasvirlaydigan maydon hosil qilamiz. Bu maydonning nomini AvtoNom deb nomlaymiz. Ayonki, ushbu ma’lumotlarga mos yangitdan sinf yaratish mantiqsiz, u allaqachon ishlab chiqilgan va unga yangi ma’lumotlarni qo’shamiz. Yaxshisi oldin mavjudlaridan foydalanamiz, keyin esa o’zimizniki qo’shamiz. Ya’ni mavjud bo’lgan tayyor funksionalliklarni voris qilib olish maqsadga muvofiq.
Avlod sinfga misol quyidagi 8.9-listingda berilgan:


8.9-listing
class My_car : Avto
{
const int maxNom = 20;
string AvtoNom; // Maydon — avtomobil markasi
public string Nom // Xossa (umumruxsatli bo'lishi ke-rak)
{
get { return AvtoNom; }
set
{
AvtoNom = value;
if (AvtoNom.Length > maxNom)
AvtoNom = "Xato: marka nomi 20 tadan katta bo'lmasligi kerak";
}
}
}

Bu listing ham oldingi 8.8-listingda berilgan konstruksiyaga o’xshash, shuning uchun faqat birinchi satrni izohlaymiz. Demak, avlod sinfni e’lon qilish uchun avlod sinf nomidan so’ng ikki nuqta belgisi qo’yilib, so’ng uning bazali (ona) sinfi yoziladi.


Endi bu ma’lumotlar asosida, bu ikki sinfni bitta dasturda yozib, dasturning asosiy qismi Main() da ularni ishlatib ko’ramiz.
Dasturda Tezlik xossasini ona sinfdan olib, uni avlod sinfda o’zgartiramiz va avlod sinfda avtomobil markasi bilan ishlaymiz. Dasturning to’liq ko’rinishi 8.10–listingda berilgan.

Download 46.81 Kb.

Do'stlaringiz bilan baham:
  1   2   3




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