ElaKiri Community

ElaKiri Community (http://www.elakiri.com/forum/index.php)
-   ElaKiri Talk! (http://www.elakiri.com/forum/forumdisplay.php?f=7)
-   -   Object Oriented Programming II (http://www.elakiri.com/forum/showthread.php?t=1182971)

Mal Baba 09-01-2011 02:33 AM

Object Oriented Programming II
 
Object Oriented Programming | වස්තු පාදක ක්‍රමලේඛනය

පසුගිය පාඩමින් අපි Object Oriented Programming වගේම Object සහ Class ගැන පැහැදිලි අවබෝධයක් ලබා ගත්තා මේ දෙවන කොටසින් අපි Object Oriented Programming වල මූලික සංකල්ප 4 ගැන පැහැදිලි කිරීමක් ඇති කරගමු
  1. Encapsulation (සංවෲත හාවය)
  2. Inheritance (පැවත ඒම)
  3. Abstraction (උකහා ගැනීම)
  4. Polymorphism (බහුරූපි භාවය)

Encapsulation (සංවෲත හාවය)

Encapsulation වල මූලිකම අරමුන තමා දත්ත ආරක්ශාකාරීව භාවිතය හා දත්ත වලට අනවශ්‍ය බලපෑම් සිදුවීමට ඇති ඉඩ කඩ අවම කිරීම
අපේ කලින් Table Fan උදාහරණෙ ගත්තොත් එහි තිබෙන Switch එකේ ක්‍රියාකාරිත්වයත් හරියට මේ වගේ ..අපිට Fan එකේ Statues මාරුකිරීනට වඩා ආරක්ශාකාරි ක්‍රමයක් Switch එක මගින් ලැබෙනවා. Computer භාෂාවක් තුලදි මේ සදහා පහසුකම් ලැබෙන්නේ Access Specifiers නමින් හැදින්වෙන Keywords මගිනුයි.මෙහිදී සියලුම Variables වලට Private Access Specifiers ලබා දෙන අතර Functions සියල්ල Public ආකාරයට සපයනවා.



Inheritance (පැවත ඒම)

http://staffweb.londonmet.ac.uk/%7Ec...nheritance.gif

මෙතනදි Is-A Has-A සම්බන්දය තමා බලපාන්නේ ඒ කියන්නේ Car Is-A Vehicle ,Van Is-A Vehicle , Jeep Is-A Vehicle නම් Vehicle And Car Has-An Engine කියලා කියන්න පුලුවන්. මෙතනදි Vehicle කියන්නේ Super Class එකත් Car කියන්නේ Sub Class එකත් කියලා කියනවා.Vehicle වලින් තමා Car , Van , Jeep තුනම පැවතගෙන එන්නේ ඉහලින් ඉන්නේ Vehicle ඊට යටින් තමා Car , Van , Jeep වගේ එව්වා තියෙන්නේ

Vehicle Class එකේ තියෙන වත්කම් (State ) හා හැසිරීම (Behavior) Car , Van , Jeep තුනේම දකින්න ලැබෙනවා ඒ වගේම Jeep කියන එකට ආවේනික වෙච්ච 4WD වගේ විශේෂ Behaviors අපිට ඒ අදාල Class එකට විතරක් යොදන්න පුලුවන්
.මෙහි විශේෂ වාසිය තමා එකම කේත නැවත නැවත ලිවීමට සිදුවීම අඩුවීම.


Abstraction (උකහා ගැනීම)

http://oi56.tinypic.com/2psod9s.jpg

වාහන ගැන කතා කරපු නිසා වාහනයකම උදාහරනයක් ගම්මුකෝ
වාහනයක Gearbox එකේ අපිට පෙනෙන ක්‍රියාකාරීත්වය ගත්තොත් ලීවරය යම්කිසි පිහිටුමකට ගත්තොත් අදාල ගියරයට එන්ජිම සම්බන්ද වෙනවා
නමුත් ඇතුලතින් ඒ ගියරය අදාල දැතිරෝද සැකසුම වෙනස් වීම බල තුලනය වගේ සංකීර්න ක්‍රියා රාශියක් වෙනවා නමුත් ඒ කිසිවක් අපිට පෙනෙන් නෑ

Abstraction වලදිත් අපිට ලබා දෙන්නේ මේවගේ දෙයක් .. අපි යම් කිසි Behavior එකක් සමග වැඩකරනවා නමුත් ඒ පිටුපස තිබෙන සංකීර්න ක්‍රීයාවලි අපට පේන් නෑ .. එය අපෙන් වෙන් වෙලයි තියෙන්නේ.මෙහි තියෙන ලොකුම වාසිය තමා සංකීර්න ක්‍රියාවලියේ වෙනසක් සිදුවුනා කියලා අපි ඒක පාවිච්චි කරලා තියෙන තැන් වල වෙනසක් සිදු නොවීම
Gear Box එකේ දැතිරෝද සෙට් එක අපි අලුතින් දැම්මා කියලා අපි ගියර්ලීවරය පාලනය කරන හැටි වෙනස් වෙන් නෑ නෙ.



Polymorphism (බහුරූපි භාවය)

http://staffweb.londonmet.ac.uk/%7Ec...lymorphism.gif

එකම Object එක විවිදාකාරයෙන් පැවතීම තමා Polymorphism කියන්නේ ..ඒ කියන්නේ යම්කිසි Object එකක් Inheritance හි Is-A කියන සම්බන්දතාවට එක අවස්ථාවකට වඩා තෘප්ත කරනවානම් එය Polymorphism
විදහා දක්වන්නක්. අපි උදාහරණයකට Double-Cab එකක් ගත්තොත් එහි Car හා Jeep යන දෙකේම ලක්ෂණ තියෙනවා.එතකොට මෙන්න මේ විදියට තමයි දිස් වෙන්නේ


Double-Cab
Is-A Vehicle
Double-Cab Is-A Car
Double-Cab Is-A Jeep

ඔය අවස්තා තුනටම ඕක සත්‍යක් වෙනවා .. එතකොට Double-Cab කියන Object එක Car එකක් විදියටත් පවතිනවා Jeep විදියටත් පවතිනවා Car එකත් Jeep එකත් Vehicle වලින් Inherit වුන නිසා Vehicle එකකුත් වෙනවා


අනිත් බහුලම අවස්තාව තමා Method Overloading අවස්තාව

මෙය මම Gear Box එක සම්බන්ද උදාහරනෙන් පෙන්වන්නම්

මෙහි changeGear() කියලා Method එකක් තියෙනවා යැයි සිතන්නඅපිට changeGear() වලදි අපි කියන ලද ඒ කියන්නේ 1st ,2nd ,3rd වගේ අපි specify කරන Gear එකක්ට මාරු කරන්නත් පුලුවන් නැත්නම් දැනට ඉන්න Gear එකෙ ඉදලා ඉහලට හෝ පහලට ගියරය මාරු කරන්නත් පුලුවන්


අපිට මෙය මෙහෙම ලියන්න පුලුවන් සරලව

Quote:

void changeGear(int gear) {
// move gear to given number
}

void changeGear(String shift) {
// move gear according to givenshift }



හැබැයි Polymorphism කියන්නේ Method Overloading කරන එකටම නෙවෙයි Method Overloading කියන්නේ Polymorphism වල එක් අවස්තාවක් විතරයි
_________________________________________________

OPP ගැන යම් දෙයක් නොතේරුනා නම් ඒ ගැන අහන්න පුලුවන් වැරැද්දක් තියෙනව නම් පෙන්නල දෙන්න.

Object Oriented Programming Part One
_________________

http://img704.imageshack.us/img704/3236/facebookyv.gif
http://img413.imageshack.us/img413/1016/sinhala.png
_________________

Special Thanks Confiuzd Programmer
Mal Baba [email protected]

2011/MB/EK.COM





Mesozoic 09-01-2011 02:38 AM

it seems you are an enthusiastic guy for OO.

prageeth119lk 09-01-2011 02:44 AM

mata mewaa click wenne na ban :baffled::oo::P
bump ekak dennam;)
jayawEwaa http://www.elakiri.com/forum/images/icons/sq/11.gif

kellsupun 09-01-2011 02:44 AM

:shocked: marai ne nikn mata tube light wage :eek:
Rep denan epa kiyala menna meka kiyanwa

gayankuwait 09-01-2011 02:59 AM

මට නම් මෙලො දෙයක් තෙරෙන්නෙ නැහැ බබා සර් :eek:
කමක් නැහැ තෙරෙන අය ඇතිනෙ ඔන්න බම්ප් එකක්

dj ice cold 09-01-2011 03:09 AM

තොට පිස්සුද යකෝ නිදාගන්න යනවෙලේ මේ මගුලක් දැම්මේ :angry::angry::angry::angry:

දැන් බලපන් මට පිස්සු හැදුනද කොහෙද :sorry:

Mal Baba 09-01-2011 03:14 AM

Quote:

Originally Posted by Mesozoic (Post 10907665)
it seems you are an enthusiastic guy for OOP.

yes dearhttp://www.elakiri.com/forum/images/icons/sq/7.gif

sumiya 09-01-2011 03:19 AM

great work man can u post old post links here...!
Rep +++

Mal Baba 09-01-2011 03:22 AM

Quote:

Originally Posted by sumiya (Post 10907724)
great work man can u post old post links here...!
Rep +++

first one macho


http://www.elakiri.com/forum/showthread.php?t=1175805

sumiya 09-01-2011 03:31 AM

Quote:

Originally Posted by Mal Baba (Post 10907731)

Thanx macho


All times are GMT +5.5. The time now is 02:33 PM.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.

Page generated in 0.03938 seconds with 9 queries