View Single Post
(#1)
Old
Mal Baba's Avatar
Mal Baba Mal Baba is offline
Senior Member
Mal Baba has much to be proud ofMal Baba has much to be proud ofMal Baba has much to be proud ofMal Baba has much to be proud ofMal Baba has much to be proud ofMal Baba has much to be proud ofMal Baba has much to be proud ofMal Baba has much to be proud ofMal Baba has much to be proud ofMal Baba has much to be proud ofMal Baba has much to be proud of
 
Posts: 103,967
Join Date: Apr 2009
Location: fb/37innovate.lk
Send a message via Skype™ to Mal Baba
Angry Object Oriented Programming II - 09-01-2011, 02:33 AM

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 (පැවත ඒම)



මෙතනදි 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 (උකහා ගැනීම)



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

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



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



එකම 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
_________________



_________________

Special Thanks Confiuzd Programmer
Mal Baba [email protected]

2011/MB/EK.COM





Last edited by Mal Baba; 09-01-2011 at 03:22 AM.
Reply With Quote
 
Page generated in 0.03389 seconds with 9 queries