Polimorfizm(polimorphism) - O’zbekiston respublikasi oliy va o’rta maxsus ta’lim vazirligi buxoro davlat universiteti

Polimorfizm(polimorphism)
Obyektli o’zgaruvchining har xil tipli (o’zgaruvchi sinfining sinf ostilari bo’lgan)
ob’ektlarga ko’rsatkich shifatida ishlatilishi polimorfizm deyiladi.
Hisoblash jarayonida qaysi metodni chaqirish kerakliligini aniqlash(ob’ektning
sinfi asosida) dinamik bog’lash (dynamic binding) deyiladi
Supersinfdan bir necha sinf ostilar va ulardan ham o’z novbatida bir necha sinf
ostilar yasasa bo’ladi. Bunday strukturaga meros daraxtsimon strukturasi deyiladi.
Supersinfdan to sinf ostigacha bo’lgan sinflar ro’yxatiga meros zanjiri deyiladi
(inheritance chain)
Inkapsulatsiya
Inkapsulatsiya - foydalanuvchidan keraksiz ma’lumotlarni yashirish.Masalan
kalkulatorning ishi ,u natijani chiqaradi lekin qanday ishlashini foydalanuvchiga
66
ko’rsatmaydi.Mashinaning tormoz bergandagi holati ,mashina to’xtaydi lekin
qanday to’xtagani haydovchiga ko’rinmaydi.
Odam sinfini yasash
using
System;
using
System.Text;
namespace
inson
{
public
class
inson
{
public
string
Familya;
public
string
Ism;
public
string
Sharif;
public
string
Manzil;
public
inson(
string
x,
string
y,
string
z,
string
q)
{
Familya = x; Ism = y; Sharif = z; Manzil = q;
}
public
virtual
void
tavsif() {
Console
.Write(
"Bu inson "
+ Familya +
" "
+ Ism +
" "
+
Sharif +
" "
+ Manzil +
" da yashaydi"
);
}
}
public
class
ishchi
:
inson
{
string
Lavozim;
int
Oylik;
public
ishchi(
string
x,
string
y,
string
z,
string
q,
string
L1,
int
oy1):
base
(x,y,z,q)
{ Lavozim =L1; Oylik=oy1;} }
67
public
class
talaba
:
inson
{
public
string
uqishturi;
public
talaba(
string
x,
string
y,
string
z,
string
q,
string
g):
base
(x,y,z,q)
{uqishturi=g;}
public
override
void
tavsif() {
Console
.Write(
"Bu talaba "
+ Familya +
" "
+ Ism +
" "
+
Sharif +
" "
+ Manzil +
" da yashaydi "
);
Console
.Write( uqishturi +
" da o`qiydi!"
); }
}
class
Program
{
static
void
Main(
string
[] args)
{
talaba
t
=
new
talaba
(
"olim"
,
"saidov"
,
"samadovich"
,
"buxoro"
,
"kontrak"
);
t.tavsif();
// inson i = t;
// i.tavsif();
// inson i = (inson)t;
// i.tavsif();
Console
.ReadKey();
}
}
}
Kalkulator misoli:
using
System;
using
System.Text;
68
namespace
aaaaaa
{
class
Program
{
static
void
Main(
string
[] args)
{
Calculator
calculator =
new
Calculator
();
calculator.Go();
Console
.ReadLine();
}
}
class
Calculator
{
public
void
Go()
{
Instructions();
bool
isQuit =
false
;
do
{
double
i, j;
char
operation;
Console
.Write(
" Birinchi sonni kiriting: "
);
i =
Convert
.ToDouble(
Console
.ReadLine());
Console
.Write(
"Ikkinchi sonni kiriting: "
);
j =
Convert
.ToDouble(
Console
.ReadLine());
Console
.Write(
"Arifmetik amalni yozing: "
);
operation =
Convert
.ToChar(
Console
.ReadLine());
Console
.WriteLine();
switch
(operation)
69
{
case
'+'
:
Console
.WriteLine(
"{0} + {1} = {2}"
, i, j, (i +
j));
break
;
case
'-'
:
Console
.WriteLine(
"{0} - {1} = {2}"
, i, j, (i -
j));
break
;
case
'*'
:
Console
.WriteLine(
"{0} * {1} = {2}"
, i, j, (i *
j));
break
;
case
'/'
:
Console
.WriteLine(
"{0} / {1} = {2}"
, i, j, (i /
j));
break
;
case
'^'
:
Console
.WriteLine(
"{0} ^ {1} = {2}"
, i, j,
Math
.Exp(j *
Math
.Log(i)));
break
;
case
'q'
: {
Console
.WriteLine(
"n Ko'rishguncha"
); isQuit =
true
; }
break
;
default
:
{
Console
.WriteLine(
"Yo'riqnomani diqqat bilan o'qing"
);
Instructions();
}
break
;
}
}
while
(!isQuit);
}
void
Instructions()
{
Console
.WriteLine(
"Salom :)"
);
Console
.WriteLine(
"'+' - qo'shish"
);
Console
.WriteLine(
"'-' - ayrish"
);
Console
.WriteLine(
"'*' - ko'paytirish"
);
Console
.WriteLine(
"'/' - bo'lish"
);
70
Console
.WriteLine(
"'^'
-
birinchi
sonning
ikkinchi
darajasi"
);
Console
.WriteLine(
"'q' - dasturdan chiqish"
);
//Console.ReadKey();
}
}
}
Xulosa:Bitiruv malakaviy ishini ikkinchi bobi c#da sinflar iyarxiyasiga
bag’ishlanadi.Bu bobning birinchi bo’limida C# dasturlash tilida sinf va uning
a’zolari haqida ma’lumotlar keltirilgan.Sinfni metodlari,metodlarni chaqirish,ularni
joylashtirish,konstruktor haqida so’z yuritilgan.
Ikkinchi bobning ikkinchi bo’limida esa sinf osti ,sinf usti tushunchalariga izoh va
misollar keltirilgan Bu bo’limda Merosxo’rlik haqida ma’lumotlar keltirilgan. Sinf
osti tushunchalari haqida to’liq ma’lumot berilgan.
Uchinchi bo’limda abstract sinf ,uni qanday e’lon qilish,undan foydalanish haqida
to’liq ma’lumotlar berilgan.Bundan tashqari bu bo’limda turli xil sinfga doir
misollar (odam ,uchburchak sinflariga doir),polimorfizm tushunchasi va unga izoh
ham berilgan.
71
XOTIMA
Hozirgi kunda C# dasturlash tili yuqori bosqichli dasturlash tillari ichida eng
samarali dasturlash tillaridan hisoblanadi. C# dasturlash tilida dastur tuzish uchun
Visual Studio 2010 muhitidan foydalanamiz. C# dasturlash tili obektga
mo’ljallangan dasturlash tili hisoblanadi. BMIning birinchi bobida C# dasturlash
tili va uning operatorlari haqida ma’lumotlar keltirilgan. Ma’lumotlarni kiritish va
chiqarish turli xil oqimlar orqali amalga oshiriladi. Bu bobda konsol rejimda
ma’lumotlarni ekran orqali kiritish va chiqarish amallari ko’rib chiqilgan. Birinchi
bob 3 ta bo’limdan iborat. Birinchi bo’limda C# tilining sintaksisi, ma’lumotlar
tiplari haqida ma’lumotlar keltirilgan. Har bir operatorning funksional
imkoniyatlari misollar orqali tushuntirib berilgan. Ikkinchi bo’limda C# tilida
ifoda, intruksiya va operatorlar haqida ma’lumotlar keltirilgan. Uchinchi bo’limda
tarmoqlash, takrorlash operatorlari va ularni har xil variantlari misollar orqali
tushuntirib berilgan. Bundan tashqari har bir operatorning funksional imkoniyatlari
misollar orqali tushuntirib berilgan.
Ikkinchi bob C# dasturlash tilida sinf qanday yaratiladi va sinflar iyarxiyasini
tashkil etish keltrilgan. Bu bob 3ta bo’limdan iborat. Birinchi bo’limda C#
dasturlash tilida sinf va uning a’zolari haqida ma’lumotlar keltirilgan. Ikkinchi
bo’limda Merosxo’rlik haqida ma’lumotlar keltirilgan. Sinf osti tushunchalari
haqida to’liq ma’lumot berilgan. Uchinchi bo’limda Abstrakt sinflar. Polimorfizm
haqida ma’lumotlar keltirilgan. Bunda mavjud metodlar o’rganilib misollar orqali
tushuntirib berilgan.
72
ADABIYOTLAR
1. I.A.Karimov “Yuksak ma’naviyat yengilmas kuch”. Toshkent, 2008, 176 b.
2. I.A.Karimov “O’zbekistonning o’z istiqlol va taraqqiyot yo’li”.Toshkent
“O’zbekiston”. 1992-yil. 173-174 b.
3. Трей Неш. C# 2008 усконренный курс для профессионалов. Москва,
Санкт-Петербург, Киев, 2008, -576с.
4. Павел Агуров. C# Сборник рецептов. СПб.: БХВ – Санкт-Петербург,
2008. – 432 с.: ил
5. Дейтел Х, Дейтел П, Листфилд Дж. C# Наиболее полное руководство В
Подлиннике. СПб.: БХВ – Санкт-Петербург, 2006. – 1056 с.: ил
6. Лабор В. В. Си Шарп: Создание приложений для Windows.— Мн.:
Харвест, 2003. - 384 с.
7. Шилдт Герберт. Полный справочник по С#. : Пер. с англ. — М. :
Издательский дом "Вильяме", 2004. — 752 с. : ил.
8. Aripov M.M., Imomov T., Irmuhamedov Z.M. va boshqalar. Informatika.
Axborot texnologiyalari. Toshkent, 1-qism. 2002, 2-qism. 2003, 168b.
9. Aripov M. Informatika va hisoblash texnikasi asoslari.Tashkent,2001,180 b.
http://fayllar.org
|