Олий таълим ўқув режаларидаги фанларга


UML — Unified Modeling Language



Download 4,03 Mb.
bet69/102
Sana23.02.2022
Hajmi4,03 Mb.
#136190
1   ...   65   66   67   68   69   70   71   72   ...   102
Bog'liq
Dasturlash asoslari majmua

UML — Unified Modeling Language — дастурий маъсулотларни махсуслаштириш, визуаллаштириш, қуриш ва ҳужжатлаштириш тили ҳисобланади, шунингдек, бизнес-моделлаштириш хамда дастурий бўлм аган бошқа тизимларни моделлаштиришда хам кенрг қўлланилади.
UML дастурлаш тили системаларни ифодалашнинг турли аспектларини тавсифлашга (масалан, ташқи фойдаланувчилар нуқтаи-назаридан систпеманинг ҳулқларини белгилашга) имкон беради. Синфлар ўртасидаги ўзаро муносабатлар синфлар диаграммасини ўз аксини топган.
Синфлар диаграммасида ворислик муносабатлари базавий синф (аждод) томонга йўналган бўялмаган учбурчак шаклида тасвирланган (14.2.1-расм)

21.2.1-расм. Ворислик учун UML диаграммалари
Синфларнинг бир-бирининг ичига кириши қисм эгасига қараб йўналган ромблар шаклида тасвирланган. Чизиқнинг иккинчи учида ички қисмлар миқдорини кўрсатувчи рақамлар ёки юлдузчалар (агар қисмлар сони иҳтиёрий бўлса) келтирилган (21.2.2-расм).

21.2.2-расм. Ички синфлар учун диаграммага намуна.

Клпассларни лойиҳалашда синфлар ўртасидаги муносабатларни иложи борича тўлароқ акс эттирадиган моделн танлаган маъқул.


Object синфи


.NET объектларининг барча шажаралари учун асосий бўлган System.Object ўзак синфи барча ворисларни бир нечта муҳим методлар билан таъминлайди. Ҳосила синфлар бу методлардан бевосита фойдаланриши ёки қайта аниқлаши мумкин.
Кўпинча object синфи умумийликни таъминлаш учун параметрларнинг типларини тавсфилашда фойдаланилади, шунингдек турли типдаги ҳаволаларни сақлашда хам қўлланрилади. Шундай қилиб, полиморфизм приципи амалга оширилади.
System.Object нинг очиқ методлари қуйида келтирилади.
Битта параметрли Equals методи агар параметр хамда объектни чақирувчи хотиранинг битта соҳасига мурожаат қилаётган бўлса true қийматини қайтаради. Уни умумий кўринишда қуйидагича ёзиш мумкин:
public virtual bool Equals(object obj);

  • Иккита параметрли Equals методи агар хар икки параметр хотиранинг битта соҳасига мурожаат қилаётган бўлса true қийматини қайтаради. Уни умумий кўринишда қуйидагича ёзиш мумкин:

public static bool Equals(object ob1, object ob2);

  • GetHashCode методи объектнинг хэш-кодини шакллантиради ва объектни бир қийматли таниш учун сонли қиймат қайтаради. Бу сондан турли тузилма ва алгоритмлар кутубхонасида фойдаланилади. Агар Equals методи қайта аниқланаётган бўлса, у холда GetHashCode методини қайта юклаш зарур. Метод қуйидагича ёзилади:

public virtual int GetHashCode();

  • GetType методи объектнинг жорий полиморф типини (ҳаволаларнинг типи эмас, балки жорий вақтда ҳавола кўрсатаётган объектнинг типини) қайтаради. Қайтарилаётган типи - Type. Шажаранинг бу абстракт базавий синфи дастурнинг бажарилиш вақтидаги тип ҳақида маълумот олиш учун қўлланади. Умумий ёзилиши қуйидагича:

public Type GetType();

  • ReferenceEquals методи агар хар икки параметр хотиранинг битта қисмига ҳавола қилаётган бўлса true қийматини қайтаради. Методнинг умумий ёзилиши қуйидагича::

public static bool ReferenceEquals(object ob1, object ob2);

  • ToString методи ҳавола типлар учун тўғридан – тўғри синфнинг тўлиқ номини сатр кўринишида, сонли қийматлар учун эса сатрга айлантирилган қийматини қайтаради. Бу объектнинг холати ҳақидаги маълумотни экранга чиқариш учун метод қайта аниқланади. Методнинг умумий ёзилиши қуйидагича :

public virtual string ToString()
Ҳосила объектларда кўпинча бу методларни қайта аниқланади. Масалан, Equals методини объектларни таққослашнинг ҳусусий критерияларини ўрнатиш учун қайта аниқлаш мумкин.
Monster синфи учун object синфи методларини қайта аниқлаш учун намуна 21.2.5-листингда келтирилган.
using System;
namespace ConsoleApplication1
{
class Monster
{
public Monster( int health, int ammo, string name )
{
this.health = health;
this.ammo = ammo;
this.name = name;
}


public override bool Equals( object obj )
{
if ( obj == null || GetType() != obj.GetType() ) return false;
Monster temp = (Monster) obj;
return health == temp.health &&
ammo == temp.ammo &&
name == temp.name;
}


public override int GetHashCode()
{
return name.GetHashCode();
}


public override string ToString()
{
return string.Format( "Monster {0} \t health = {1} ammo = {2}",
name, health, ammo );
}
string name;
int health, ammo;
}
class Class1
{ static void Main()
{
Monster X = new Monster( 80, 80, "Вася" );
Monster Y = new Monster( 80, 80, "Вася" );
Monster Z = X;
if ( X == Y ) Console.WriteLine(" X == Y ");
else Console.WriteLine(" X != Y ");
if ( X == Z ) Console.WriteLine(" X == Z ");
else Console.WriteLine(" X != Z ");
if ( X.Equals(Y) ) Console.WriteLine( " X Equals Y " );
else Console.WriteLine( " X not Equals Y " );
Console.WriteLine(X.GetType());
}
}
}
21.2.5-листинг. Object синфи методларини қайта аниқлаш
Дастурнинг натижаси қуйидагича:
X != Y
X == Z
X Equals Y
ConsoleApplication1.Monster
Дастурнинг иши натижаларини таҳлил қилар эканмиз, кўриш мумкинки, тенгликка таққослаш амалларида ҳаволалар таққосланади, қайта юкланган Equals методида эса - қийматлар.

Download 4,03 Mb.

Do'stlaringiz bilan baham:
1   ...   65   66   67   68   69   70   71   72   ...   102




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish