1-qator: Nomlar maydonidan using System sinflardan foydalanishimiz mumkinligini anglatadi. 2-qator


Download 0.73 Mb.
bet30/43
Sana08.10.2023
Hajmi0.73 Mb.
#1695516
1   ...   26   27   28   29   30   31   32   33   ...   43
Bog'liq
C# asoslari

Sinf qayerda aniqlanadi ?


Sinf nomlar fazosi ichida, nomlar fazosi tashqarisida, boshqa sinf ichida aniqlanishi mumkin.
Odatda, sinflar alohida fayllarga joylashtiriladi. Ammo biz yangi sinfni Program sinfi joylashgan faylga joylashtiramiz. Ya'ni, Program.cs fayli quyidagicha ko'rinishga ega bo’ladi:
namespace UzbekDevs
{
class Bino
{

}
internal class Program


{
static void Main(string[] args)
{
}
}
}
Sinfning barcha funktsional imkoniyatlari uning a'zolari - maydonlar (sinf o'zgaruvchilari uning maydonlari deyiladi), xususiyatlari, metodlari, hodisalari bilan ifodalanadi. Masalan, Bino sinfidagi maydonlarni va metodni aniqlaylik:
namespace UzbekDevs
{
class Bino
{
public int Qavatlar; // Qavatlar soni
public int Maydonlar; // Binoning umumiy maydoni
public int AholiSoni; // Binoda yashaydigan aholi soni
}
// Bu sinf Bino turidagi obyektni e’lon qiladi.
internal class Program
{
static void Main(string[] args)
{
Bino uy = new Bino(); // Bino turidagi obyekt e’lon qilish
int maydon; // Kishi boshiga maydon
//Uy obyektidagi maydonlarga qiymatlarni kiritish
uy.AholiSoni = 8;
uy.Maydonlar = 2800;
uy.Qavatlar = 5;// Bir kishi uchun ajratilgan maydonni hisoblash.
maydon = uy.Maydonlar / uy.AholiSoni;
Console.WriteLine("Bino: \n " +
uy.Qavatlar + " qavat\n " +
uy.AholiSoni + " aholi\n " +
uy.Maydonlar +
" umumiy maydon bo‘lib, shundan\n " +
maydon + " kishi boshiga to‘g‘ri keladi!");
Console.ReadKey();
}
}
}
Dastur natijasi:
Bino:
5 qavat
8 aholi
2800 umumiy maydon bo`lib, shundan
350 kishi boshiga to`g`ri keladi!

C# Method (Sinf/Class)


Sinflar ushbu kitobning barcha na’munaviy dasturlarida qo‘llanilgan. Obyektga yo’naltirilgan dasturlashgacha foydalanilgan sinf eng oddiy sinf bo‘lib, bu ularning ko‘p xossalaridan foydalanishga imkon bermaydi. Sinflarning asosiy qoidalarini ko‘rib chiqamiz. Sinf - bu obyekt shaklini belgilaydigan shablon. U ma’lumotlar va ushbu ma’lumotlarda ishlaydigan kodni belgilaydi. C# da sinfning nusxasi bo‘lgan obyektlarni qurish uchun sinf spetsifikatsiyasidan foydalanadi. Sinf mantiqiy abstraksiya hisoblanadi. Sinfning fizik ko‘rinishi operativ xotirada faqat shu sinf obyekti yaratilgandan keyingina paydo bo‘ladi.Sinfning umumiy shakli Sinf aniqlanganda, uning tarkibidagi ma’lumotlar, shuningdek, ushbu ma’lumotlarda ishlaydigan kod e’lon qilinadi. Eng oddiy sinflar faqat kodni yoki faqat ma’lumotlarni o‘z ichiga olishi mumkin bo‘lsa-da, ko‘pchilik haqiqiy sinflar ikkalasini ham o‘z ichiga oladi.Ma’lumotlar sinf tomonidan belgilangan a’zolarida, kod esa a’zo metodlarida mavjud. Sinflarning bir nechta a’zolari mavjud bo‘lib, metodlar, konstruktorlar, destruktorlar, indeksatorlar, hodisalar, operatorlar va xossalarnio‘z ichiga oladi. classkalit so‘zi bilan sinf yaratiladi. Quyida faqat o‘zgaruvchilar nusxasi va metodlarini o‘z ichiga olgan oddiy sinfning umumiy shakli keltirilgan.
class SinfNomi
{
// O‘zgaruvchilar e’loni
ruxsat_modifikatortur_nomi uzgaruvchi1;
ruxsat_modifikatortur_nomi uzgaruvchi2;
//...
ruxsat_modifikatorturnomi uzgaruvchiN;
// Metodlarni e’lon qilish.
ruxsat_modifikatortur_nomi metod1(parametrlar)
{
// metod tanasi
}
ruxsat_modifikatorturnomi metod2(parametrlar)
{
// metod tanasi
}
// metod tanasi
}
Har bir o‘zgaruvchi va metod e’lonidan oldin ruxsat modifikatori mavjud. Bu ma’lum bir sinf a’zosiga qanday kirishni ko‘rsatuvchi public modifikatori hisoblanadi. Sinf a’zolari sinf ichida private yoki public bo‘lishi mumkin. Ruxsat modifikatori ruxsat etilgan kirish turini belgilaydi. Ruxsat modifikatori ixtiyoriy, lekin yo‘q bo‘lsa, e’lon qilinayotgan a’zo sinf ichida private modifikatorini qabul qiladi. private a’zolardan faqat o‘z sinfining boshqa a’zolari foydalanishi mumkin. Yuqoridagi dasturda Main() metodidan tashqari barcha a’zolar public sifatida belgilangan. Bu shuni anglatadiki, ular boshqa barcha kod qismlarida, hatto sinfdan tashqarida aniqlanganlarda ham foydalanish mumkin. 

Sinf a’zosi e’lonida ruxsat modifikatorlaridan tashqari bir yoki bir nechta modifikatorlar ham ishlatilishi mumkin. Oldingi boblarda tuzilgan dasturlarda ishlatilgan sinflar faqat bitta metodni o‘z ichiga olgan: Main(). Lekin yuqorida ko‘rsatilgan sinfning umumiy shaklida Main() metodi ko‘rsatilmagan. Agar dastur shu sinfdan boshlangan bo‘lsa, bu metod sinfda ko‘rsatilishi kerak.
Endi sinfni ichida metod hosil qilishga doir misol ko’ramiz.
namespace UzbekDevs
{
class Rect
{
public int a;
public int b;
public Rect(int x, int y)
{
a = x;
b = y;
}
public int Yuza()
{
return a * b;
}
}
internal class UseRect
{
static void Main(string[] args)
{
Rect myclass1 = new Rect(3, 4);
Rect myclass2 = new Rect(5, 6);
Console.WriteLine("myclass1 to'rtburchak:"+myclass1.Yuza());
Console.WriteLine("myclass2 to'rtburchak:" + myclass2.Yuza());
Console.ReadKey();
}
}
}
Dastur natijasi:

Download 0.73 Mb.

Do'stlaringiz bilan baham:
1   ...   26   27   28   29   30   31   32   33   ...   43




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