6/21/11

object oriented programming | වස්තු පාදක ක්‍රමලේකනය

what is object oriented programming ?
වස්තු පාදක ක්‍රමලේකනය කියන්නේ මොකක්ද?

object oriented programming කියන්නේ අපි යම්කිසි real world problem එකකට පරිගනකයක් ආශ්‍රයෙන් විසදුමක් ලබා ගන්න ඕනි උනා ම  real world එකේ problem එකට අදාල සියලුම වස්තුන් (object ) වලට අනූරූපව හා අංගසමව පරිගනකය තුල object ලෙසට නිර්මානය කරලා අපි පරිගනකය තුල නිර්මානය කල objects අතර අන්තර්ක්‍රියාරිත්වය මගින් ගැටලුව පරිගනකය තුල නැවත නිර්මානය කර විසදුමක් ලබාගෙන අප  real world object වලට ඇති අංග සමතාවයෙන් real world problem එකට විසදුමක් ලබා ගැනීමයි



What Is an Object?
Object එක තමා OOP වල කොදු නාරටිය ..මම පැහැදිලි කිරීමේ පහසුවට අපේ වට පිටාවෙ තියෙන Objects වලට real world  Object කියලත් අපි පරිගනකය තුල නිර්මානය කරන ඒ වට Software Object  කියලත් භාවිතා කරන්නම් ..මේක පැහැදිලි කරන්න විතරයි ... ඇත්ත වශයෙන්ම එහෙම දෙවර්ගයක් නෑ Object නම් Object 

ඔබගේ මේසය දෙස බලන්න අනිවාර්යෙන්ම පහසුවෙන්ම දකින්න පුලුවන් real world  Object කොච්චර තියෙනවද ?
මම table lamp එක ගන්නම් .. ඒකට පාටක් තියෙනවා ..මේ වෙලාවෙ ඒක off කරලයි තියෙන්නේ .. මට ඕනිනම් ඒක on කරන්න පුලුවන් ..ආයෙ off කරන්නත් පුලුවන්

ඒවගේම mobile phone එක ..ඒකටත් පාටක් තියෙනවා ...ඒකෙ SMS ,MP3 enable , services provider කෙනෙක් ඉන්නවා .. දැනට ඒක තියෙන්නේ standby mode එකේ ..ඕනිනම් මට ඒකෙන් call එකක් ගන්න පුලුවන් .. table lamp එකට වඩා හුගක් වැඩ mobile phone එකත් එක්ක කරන්න පුලුවන්

මේ උදාහරන දෙක දිහා බැලුවහම real world  Object වල ගතිලක්ෂන එහෙමත් නැත්නම් characteristics දෙකක් තියෙනවා වත්කම් (state ) හා හැසිරීම (behavior)


Software Object වලත් මේ characteristics එහෙම්මම තියෙනවා අපි state  නිරූපනය කරන්න variables සහ behavior නිරූපනය කරන්න functions  යොදා ගන්නවා 
අපිට Software Object එකක state  එකක් වෙනස කරන්න ඕනිනම් functions  එකක් හරහා තමා ඒක කරන්න ඕනි ..ඒ කියන්නේ Software Object අතර communication එක වෙන්නේ behavior නැත්නම් functions   හරහා තමයි

What Is a Class?

class is the blueprint from which individual objects are created. 

මේක තමා class එකක ගැන දෙන සරලම පැහැදිලි කිරීම .. 
table lamp කියන real world  Object එක ගත්තාම ලෝකෙ කොච්චර table lamps තියනවද ..මේ හැම එකක්ම හදන්න යොදාගෙන තියෙන සැලසුම් පිටපත ..plan එකට තමයි class එක කියන්නේ ..ඒ සැලසුමට අනුව හදපු (instance ) එකකට තමා අපි table lamp Object  එක කියන්නේ .. අපි එකම සැලසුමට හදපු නිසා ඒ ඔක්කොම  table lamp ඔක්කොම එකම  වත්කම් (state ) හා හැසිරීම (behavior) තමා බෙදා හදා ගන්නේ ..නමුත් ඒ හදපු instance  එකිනෙකින් ස්ව්‍යායක්තයි .. මගෙ table lamp එක switch off කලා කියලා ඔයාගෙ table lamp එක switch off  වෙන් නෑනෙ

එතකොට class එකක තියෙන්න පුලුවන් මොනවද ? ඒකෙ තියෙන්න පුලුවන් වත්කම් (state ) හා හැසිරීම (behavior
state  ගත්තොත් table lamp එකේ පාට අපි ප්ලෑන් එකේදි දක්වන් නෑ නෙ .. අපි එක පාටකින් හදලා ඒවට පාට ලබා දීම කරන්නේ පස්සෙනෙ ..එහෙම නොකොලොත් අපිට රතු පාට  table lamp හදන්න එක blueprint  එකකුත් කොල පාට  table lamp හදන්න තව එකකුත් ඕනි වෙනවනේ
behavior ගත්තොත් පොදුවේ  table lamp එක switch off  කරන්න switch on කරන්න ඕනි විධාන පිලිවෙලින් ගොනු කරලා තියෙනවා 

class TableLamp{

       String  color = black;
       int state= 0;
       

       void switchOn() {
            state= 1;
       }

       void switchOff() {
            state= 0;
       }

       void setColor(String aColor) {
            color= aColor;   
       }

       String getColor() {
           return color;
       }

       
}
 මෙන්න මේ වගේ class එකක් තමා අපි මෙච්චර වෙලා කතා කරපු table lamp එකට හදන්න පුලුවන්

============================
කලකට පස්සේ වෙලකට බැස්සේ වැරදි තියෙනවනම් දැනමුතු කට්ටිය කොමෙන්ට් කරලා යන්න 

18 comments:

Networkදිසා said...

අනේ මචෝ දිගටම ඉක්මනටම මේ ලිපි ටික දාපන්කො. මම BIT second semester කරනව පොඩි හේතුවක් හින්ද මට class සති 2කක්ම යන්න බරෙුව ගියා. ඒ කාලෙදි java oop සේරම ටික class එකේ ඇදල ඉවරයි.මම notes බලල තේරැම් ගන්න හැදුවත් හරිගියෙ නෑ. උබ දාල තියෙන විදියටනම් පට්ට තේරෙනව.
ලබන මාසෙ අන්තිමට තමයි විභාගෙ තියෙන්නෙ. උබට පුළුවන් නම් ඊට කලින් මේ ලිපි ටික දාල මටයි මම වගේ අසරන වෙලා ඉන්න අනිත් එවුන්ටයි ගොඩයන්න හදල දීපන්' එහෙම කලොත්නම් බං උබට ගොඩක් පිං.
ඔන් මම මගෙ blog එකටත් confiuzdprogrammer link එකත් දාගත්ත.

Yohan Kanishka | යොහාන් කණිෂ්ක said...

අන්න ලිපියනම් මරු :) ඔක්කොම ටික දිගටම ලියමු මම එනවා ඉගනගන්න :)

budhajeewa said...

එළකිරි සහ ජලය!

කස්ටිය කියනවානේ class එක තමා අච්චුව object එක කොකිසයි කියලා. :D

Kanishka | කණියා said...

සිරාවට අද තමා OOP ගැන හරියට අයිඩියා එකක් ගත්තේ.. එල ලිපියක් මචං.

Confiuzd ප්‍රෝග්‍රැමර් said...

@Networkදිසා : මම මේක ලියන්නේ C++ වලට කොහොමත් මූලික සංකල්ප ටික එකයි නේ .. ජාවා වලට සම්බන්ද ඒවා ටික මම වෙනම පෝස්ට් එකක් විදියට දාන්නම් ..

@පොඩි කණි: සතියට පෝස්ට් 2 විතර තමා වැටෙන්නේ දිගටම එන්න

@budhajeewa : ඔන්න ඔය වගේ අපිට සමීප උදාහරන අරගෙන කියලා දෙනවනම් OOP ඉක්මනට තේරුම් ගන්න පුලුවන් ..A class is the blueprint of objects කිව්වාම ඉතින් කරකවලා පොලේ ගැහුවා වගේ

@කණියා : අම්මේ තේරුනාද ? බොහොම ස්තූතියි :D

budhajeewa said...

@Confiuzd ප්‍රෝග්‍රැමර්: ආයෙත් අහලා. Blue print ගැන හොයන්න පලකො ඊළඟට. :P

Anonymous said...

Fatta Keep It Up

Anonymous said...

good work.keep it up

අත්වැල මමයි - වටිනාම දේ ඔබටයි said...

ෆට්ට බන්

Anonymous said...

very gud, Pls post the other posts
Tnks

Confiuzd ප්‍රෝග්‍රැමර් said...

@ all : thanx you ..hope you will find something interesting

K_ZONE said...

පට්ට මචො. . හොද වෙලාවට ASM පාඩම් යන දවස් වලම RSS දාගත්තෙ . . එ දවස්වල මෙවා ඔලුවට දාගත්තෙ කොච්චර අමරුවෙන්ද කියල හිතෙනවා, අලුතෙන් ඉගන ගන්න අයට විතරක් නෙමයි, දන්න අයට උනත් මාර වටිනවා සහෝ. . තැන්කූ වේවා. .

Anonymous said...

make itru tika mata hoya ganna bahaneee

Pushpe Ayya said...

එල කොල්ලෙක් ඇත්තම වටිනවා
මොකද කියනව නම් සුද්ද සිංහලෙන් පැහැදිලිව සරලව මුල් අදියර කියල දීල තියෙනවා බොහොම අගෙයි සහෝ

gayan said...

niyamai ayye' me karana denan patta.oyage jeewithe saarthaka wewa.mama NIBM BSc in MIS student kenek.

Anonymous said...

සිරා බන් බෝම පින්...

සංජය said...

ela kiri..godak watinawa saho...

nadun udara said...

kiyala wadakne bn niyamai

Post a Comment