Ïîìîãíè íè äà íàïðàâèì Uroci.net ïî - áîãàò! Äîáàâè óðîê
Êàòåãîðèè Äðóãè óðîöè Adobe Photoshop Adobe Illustrator Adobe Flash Adobe Fireworks DreamWeaver CSS è HTML Corel Draw Image Ready PHP SEO CMS Microsoft Windows Microsoft Word Microsoft Excel PowerPoint Microsoft Access Microsoft Publisher Linux Visual basic
JavaScript Ajax 3ds Max Maya 3D C++ Sound Forge Gimp SWiSH

Ïðèíöèïè íà îáåêòíî îðèåíòèðàíîòî ïðîãðàìèðàíå

bubust   òðóäíîñò:    âèäÿí: 2301

Êàêòî ìîæå áè çíàåòå, Visual Basic áåøå âêëþ÷èë íÿêîè õàðàêòåðèñòèêè íà îáåêòíî-îðèåíòèðàíîòî ïðîãðàìèðàíå ñëåä âåðñèÿ 4. Âúïðåêè òîâà, â ñìèñúëà íà îáåêòíàòà îðèåíòàöèÿ, ïðåìèíàâàíåòî îò âåðñèÿ 6 êúì VB .NET áåøå äðàìàòè÷íî. Ñúâñåì ÿñíî å, ÷å VB .NET å îáåêòíî-îðèåíòèðàí ïðîãðàìåí åçèê. Ìîæå äà ñè êàæåòå: "Íÿìàì ïðåäïî÷èòàíèÿ äà èçïîëçâàì îáåêòíî - îðèåíòèðàíè òåõíèêè íà ïðîãðàìèðàíå." Íî ñòðóêòóðàòà âúâ VB .NET, íà .NET Framework--ñïåöèàëíî íà áèáëèîòåêà .NET Base Class Library--êàêòî è äîêóìåíòàöèÿòà, å òàêà îáåêòíî-îðèåíòèðàíà, ÷å âèå íÿìà äà ìîæåòå äà ãè ïîëçâàòå àêî íå âíèêíåòå â ñúùíîñòòà íà îáåêòíàòà îðèåíòàöèÿ.



Ïðèíöèïè íà Object-Oriented Programming

×åñòî ñå òâúðäè, ÷å èìà ÷åòèðè îñíîâíè êîíöåïöèè â îáëàñòòà íà îáåêòíî-îðèåíòèðàíîòî ïðîãðàìèðàíå:

· Àáñòðàêöèÿ - Abstraction

· Êàïñóëàöèÿ - Encapsulation

·Íàñëåäÿåìàñò - Inheritance

· Ïîëèìîðôèçúì - Polymorphism

Âñÿêà îò òåçè êîíöåïöèè èãðàå âàæíà ðîëÿ â ïðîãðàìèðàíåòî ïîä VB .NET íà åäíî èëè äðóãî íèâî.

Êàïñóëàöèÿòà è àáñòðàêöèÿòà ñà "àáñòðàêòíè" êîíöåïöèè, ïîääúðæàùè ìîòèâàöèÿòà íè çà îáåêòíî-îðèåíòèðàíî ïðîãðàìèðàíå. Íàñëåäÿåìîñòòà è ïîëèìîðôèçìà ñà êîíöåïöèè, êîèòî äèðåêòíî ñå âïëèòàò â ïðîãðàìèðàíåòî ïîä VB .NET.



- Àáñòðàêöèÿ



Íàêðàòêî êàçàíî, àáñòðàêöèÿòà (abstraction) å íàáîð îò åäèíèöè, êîèòî âêëþ÷âàò ñàìî òåçè àñïåêòè, êîèòî ñà ðåëåâàíòíè íà îòäåëíàòà, êîíêðåòíàòà ñèòóàöèÿ. Íàïðèìåð, äà ïðåäïîëîæèì, ÷å èñêàìå äà ñúçäàäåì ñîôòóåð, êîéòî îáñëóæâà îáåçïå÷àâàíåòî è çàïàçâàíåòî íà èíôîðìàöèÿòà çà ñëóæèòåëèòå íà åäíî ó÷èëèùå. Çà òàçè öåë, íèå çàïî÷âàìå ñúñ ñúçäàâàíåòî íà ñïèñúê îò åëåìåíòè (÷ëåíîâå - items) ðåëåâàíòíè êúì íàøàòà åäèíèöà (ñëóæèòåë íà ó÷èëèùåòî). Íÿêîè îò òåçè åëåìåíòè - items ñà:

· FullName - (ïúëíî èìå)

· Address - (àäðåñ)

· SlujashtID - (èäåíòèôèêàöèîíåí íîìåð)

· Zaplata- (çàïëàòà)

· IncZaplata - (íàðàñòâàíå íà çàïëàòàòà)

· DecZaplata - (íàìàëÿâàíå íà çàïëàòàòà)

Çàáåëåæåòå, ÷å âêëþ÷âàìå íå ñàìî ñâîéñòâà - properties íà åäèíèöàòà, êàòî FullName, íî è àêöèè - actions , êîèòî ìîãàò äà áúäàò ïðåäïðèåìàíè ñïðÿìî òàçè åäèíèöà, êàòî íàïðèìåð IncZaplata, çà äà ñå óâåëè÷è çàïëàòàòà íà ñëóæèòåëÿ. Àêöèèòå ìîãàò äà ñå ñâúðæàò ñ ìåòîäè (methods), îïåðàöèè (operations), èëè ïîâåäåíèå (behaviors). Ùå èçïîëçâàìå ïîíÿòèåòî ìåòîäè (methods), çàùîòî âúâ VB .NET òî ñå èçïîëçâà.

Ðàçáèðà ñå íèå íèêîãà íÿìà äà âêëþ÷èì ñâîéñòâî HairCount, êîåòî äà äàâà áðîÿ íà êîñìèòå íà êîñàòà íà ñëóæèòåëÿ, âúïðåêè, ÷å âñåêè ñëóæèòåë èìà òàêèâà, çàùîòî òàçè èíôîðìàöèÿ îò ãëåäíà òî÷êà íà êîìïàíèÿòà íå å èíòåðåñíà.

Íàêðàòêî, íèå ñìå ñúçäàëè àáñòðàêöèÿ íà êîíöåïöèÿòà çà ñëóæèòåë (Slujasht)--âêëþ÷èëè ñìå ñàìî òåçè ñâîéñòâà è ìåòîäè íà ñëóæèòåëÿ, êîèòî ñà ðåëåâàíòíè íà íàøèòå íóæäè. Ñëåä êàòî âå÷å ñìå ñúçäàëè àáñòðàêöèÿòà, ìîæåì äà çàïî÷íåì êàïñóëèðàíåòî (encapsulate) íà òåçè ñâîéñòâà è ìåòîäè âúòðå â ñîôòóåðíèÿ êîìïîíåíò.



Êàïñóëàöèÿ

Èäåÿòà çà êàïñóëàöèÿòà å äà ñå çàòâîðÿò (òîåñò, êàïñóëèðàò) ñâîéñòâàòà è ìåòîäèòå íà àáñòðàêöèÿòà, è äà ñå èçëàãàò (expose) ñàìî òåçè, êîèòî ñà àáñîëþòíî íåîáõîäèìè. Âñÿêî ñâîéñòâî è ìåòîä íà àáñòðàêöèÿòà ñå íàðè÷à ÷ëåí (member) íà àáñòðàêöèÿòà. Ìíîæåñòâîòî îò èçëîæåíè (exposed) ÷ëåíîâå íà àáñòðàêöèÿòà êîëåêòèâíî ñå ñâúðçâà ñ ïóáëè÷íèÿ èíòåðôåéñ - public interface (èëè ñàìî interface) íà àáñòðàêöèÿòà (èëè íà ñîôòóåðíèÿ êîìïîíåíò, êîéòî êàïñóëèðà àáñòðàêöèÿòà).

Êàïñóëàöèÿòà îáñëóæâà òðè ïîëåçíè öåëè:

· Ïîçâîëÿâà ïðîòåêöèÿ íà òåçè ñâîéñòâà è ìåòîäè çà ïîñåãàòåëñòâà îòâúí.

· Äîïóñêà âêëþ÷âàíå íà âàëèäèçèðàù êîä, çà äà ñå õâàùàò ãðåøêèòå ïðè èçïîëçâàíå íà ïóáëè÷íèÿ èíòåðôåéñ. Ïðèìåðíî ïðîâåðêà äà íå ñå âúâåäå îòðèöàòåëíî ÷èñëî çà çàïëàòà íà ñëóæèòåë.

· Îñâîáîæäàâà ïîòðåáèòåëÿ îò çàäúëæåíèåòî äà çíàå êàê ñà âëîæåíè ñâîéñòâàòà è ìåòîäèòå.

Íàïðèìåð íå íè òðÿáâà äà çíàåì êàê Visual Basic ñúõðàíÿâà â ïàìåòòà öåëî÷èñëåíî ÷èñëî (Integer data type), èëè ïî-òî÷íî äâîè÷íèÿò ìó êîä.



Ôèãóðà 60 .

8 áèòîâî äâîè÷íî ÷èñëî



Ïðèìåðíî, íàé-ñòàðøèÿò ðàçðÿä b7 å çíàêîâ áèò (sign bit). Êîãàòî å 1, ÷èñëîòî å îòðèöàòåëíî, à êîãàòî å 0, ïîëîæèòåëíî.

Ôîðìóëàòà çà ïðåâðúùàíåòî íà ÷èñëîòî b7b6b5b4b3b2b1b0 â äåñåòè÷íî å:

decimal = -128b7 + 64b6 + 32b5 + 16b4 + 8b3 + 4b2 + 2b1 + b0

Íèå ïðîñòî çàïèñâàìå êîäà òàêà:

x = -16

y = -x

è îñòàâÿìå êîìïþòúðà è ïðîãðàìíèÿ åçèê äà ñå ãðèæàò äà ïðåäñòàâÿíåòî íà ÷èñëàòà. Eòî òîâà å êàïñóëàöèÿ. Ñàìî òàçè ïîðöèÿ îò ñâîéñòâà è ìåòîäè, êîÿòî å íóæíà, çà äà ðàáîòèì ñ öåëî÷èñëåíè (integer) ÷èñëà ñå èçëàãàò (exposed) íàâúí. Òàçè ïîðöèÿ îò ïóáëè÷íèÿ èíòåðôåéñ å öåëî÷èñëåí òèï äàííè - Integer data type.

Íåùî ïîâå÷å, êàïñóëàöèÿòà íè ïðåäïàçâà îò ãðåøêè, çàïèñâàìå çíàê ìèíóñ, à êàïñóëèðàíèÿ òèï äàííè ñè ïðèáàâÿ 1, àâòîìàòè÷íî.

· Êàïñóëàöèÿòà èìà è äðóãà èíòåðåñíà ÷åðòà. Âñåêè êîä íàïèñàí çà èçëîæåíèÿ èíòåðôåéñîñòàâà âàëèäåí, äîðè äà ñå ñìåíÿò îòâúí öåëèòå ÷èñëà (Integer data type) ïî íÿêàêâà ïðè÷èíà, äîòîãàâà, äîêàòî èíòåðôåéñúò íå å ñìåíåí. Íàïðèìåð àêî ïðåìåñòèì êîäà íà êîìïþòúð, êîéòî ñúõðàíÿâà ÷èñëàòà â äðóã êîä, íàøèÿò êîä ïàê ùå ñè èçãëåæäà òàêà:

x = -16

y = -x

òî÷íî òîëêîâà âàëèäåí êàêòî ïðåäè.


Ñòðàíèöè: 1 2 »

Ðåãèñòðèðàéòå ñå, çà äà äîáàâèòå êîìåíòàð


© Âñè÷êè ïðàâà çàïàçåíè. 2006-2008. Created by: Site.bg
Ïðåïîðú÷âàìå: IT Íîâèíè | Êèíî è èãðè | Äèïëîìà.áã | Paparak.bg | Òóíèíã Ïîðòàë | uchenik.com | TRAVEL òóðèçúì | Ðåôåðàòè | AmAm.bg | Èäå.ëè | Êóðñîâè ðàáîòè | AnimeS-bg.com | Ôîòî Ôîðóì | Çàïîçíàíñòâà | Ìðåæà îò ïðèÿòåëè | IT Light | Spodeli.net | Ôîòî-Êóëò | IDG.BG | Teenproblem.net | Áëîã - Îáðàçîâàíèå | Fresh-BG.com | Hanovete.com | Bulfleet.com | Mythlands.com | Ohoboho.com | Êàçàíëúê.Com | News24 | Setcom.bg | Atol.bg | Elmaz.com | MobileBulgaria.com