Pages

Thursday, January 8, 2015

Java Part 10 ( Methods )

Methods in Java


exam නිසා අපේ ජාවා කුප්පියේ අවසාන කොටස දාන්න බැරි වෙයිද කියලා හිතේ පොඩි බයක් තිබුනා.. ඒත් මහින්ද මාමාගෙයි මෛත්‍රී මාමාගෙයි චන්දෙ නිසා ලැබුන නිවාඩුව පාවිච්චි කරලා කොහොමහරි ජාවා කුප්පිය ඉවර කරන්න කියලා තමයි මේ සූදානම... ඉතින් අපි අන්තිමටම කතා කරපු arrays ගැන කාටහරි බලන්න බැරි වුනානම් මෙතනින් ගිහින් ඒක බලන්න පුළුවන්. අපි එහෙනම් වැඩේ පටන් ගමුකෝ..

කට්ටියට මතක ඇති අපි array එකක් use කරේ variable set එකක් group කරලා තියාගන්නනේ.. එ් වගේම method ගැනත් දැනට පොඩි idea එකක් දාගමු. method එකක් කියන්නෙ මොනවහරි coding set එකක් group කරලා තියාගත්තම ඒකට කියන නමට කියලා පොඩ්ඩක් දැනට ඔලුවට දාගමු හොඳද..


Method

මෙහෙම හිතමුකෝ, අපි ලියනවා ලොකුම ලොකු program එකක්. මේකෙ තියෙනවා කියලා හිතන්නකො coding පේලි 1000ක් විතර. මේ 1000 ඇතුලේ අපිට එකම දේ කරන්න ඕන වෙන coding set එකක් අවස්ථා 5ක use වෙලා තියෙනවනම් අපිට ඉතින් මහලොකු අමාරුවක් නෑනේ copy / paste පහසුකම භාවිතා කරලා ඒ අවශ්‍ය තැන් වලට ලේසියෙන්ම ඒ code ටික දාගන්න පුළුවන්නෙ නේද?

හැබැයි java වලදි අපි එකම දේ දෙතුන් පාරක් ලියන්නෙ නෑ.. එහෙම කලා කියලා compile error එන්නෙ නම් නෑ. ඒත් අපි standard එකක් විදියට java වල එකම දේ නැවත නැවත යෙදෙනව නම් ඒක එහෙම ලියන්නෙ නැතුව වෙන option එකක් use කරනවා..

ඉතින් දැන් ඔන්න මාර ප්‍රශ්නයක් තමයි වුනේ.. අපිට එකම දේ use කරන්න වෙනවා අපේ program එකේදි. ඒත් java standard එකක් නිසා එහෙම කරන්න එපා කියනවා. දැන් අපි මොකද කරන්නෙ? 

මෙහෙම හිතමුකො.. අපිට එක පාරක් ලියන්න පුළුවන්නෙ? එහෙනම් අපි මෙන්න මේ සැරින් සැරේ අවශ්‍ය වෙන code ටික වෙනම තැනකින් ලියලා තියාගමු. දැන් අපිට ඒ ටික ඕන වෙනකොට අපි compiler ට ඒක තියෙන තැන කියලා ඒ ටික run කරන්න කියලා කිව්වොත් එයා ඒ ටික run කරලා අපේ වැඩේ අවශ්‍ය විදියටම කරලා දෙනවානේ? ඉතින් එහෙම කරගත්තොත් නම් අපි එක පාරකට වඩා ලියන්නෙත් නෑ, අපිට අවශ්‍ය වැඩේ කරගන්නත් පුළුවන්. ඉතින් ඇත්තටම මෙහෙම අවශ්‍ය වෙන code set එකක් ලියලා පැත්තකින් තියලා අවශ්‍ය වෙලාවට run කරවන මේ සිද්ධිය තමයි method එකකින් අපි කරන්නෙ. 

ඒ කියන්නෙ අපි අපේ main එකට පිටින් මෙහෙම ලියන code set එක ලියන්නෙ method එකක් ඇතුලේ.. ඇත්තම කිව්වොතින් main කියලා කියන්නෙත් method එකක්මයි. එහෙනම් අපි coding ලියන්නෙ මොකක් හරි method එකක් ඇතුලේ.. automatically run වෙන method එකට විශේෂ නමක් කියනවා main method එක කියලා. එහෙම නැතුව අපි පස්සෙ අවශ්‍ය code දාලා හදන method වලට main method එකේ ඉඳන් අවශ්‍ය වෙලාවට call කරන්න ඕන..


How to Declare Methods

method එක ප්‍රධාන කොටස් දෙකක් තියෙනවා.. මම මුලින්ම පොදුවෙ method1 කියලා method එකක් හදන හැටි පෙන්නලාම ඒ කොටස් දෙක ගැන කියන්නම්කො..




උඩ රූපේ පෙන්නලා තියෙන විදියට තමයි method එකක් හදන්නෙ.. මෙතනදි අපිට දෙන්න ඕන නමට කලින් void කියලා දීලා තියෙනවා method එකක් කියලා පෙන්නන්න ඕන නිසා method එකේ නමට පස්සෙ වරහනක් දාලා තියෙනවා. ඊට පස්සෙ ඒ method එක යටතේ ලියන්න ඕන code ටික {} ඇතුලේ ලියන්න තියෙන්නෙ..

ඉතින් මම කොටස් දෙකක් ගැන කිව්වනෙ කලින්. රූපේ රතු පාටින් ඉරි දෙකක් ගහලා තියෙන්නෙ ඒ ප්‍රධාන කොටස් දෙක යටින් තමයි.. මේ void කියලා දීලා තියෙන තැනින් වෙන්නෙ method එක ඇතුලෙදි calculate කරලා හරි user ගෙන් scan කරලා හරි ගන්න මොකක් හරි value එකක් method එකට call කරපු තැනට යවන එක.. වරහන ඇතුලෙන් කරන්නේ මේ method එකට පිටින් අවශ්‍ය කරන value එකක් ගෙන්න ගන්න එක.. අපි ඒකත් පොඩි රූප කෑල්ලකින්ම බලලා ඉමුකෝ..




වෙනස් වෙන තැන් දෙකයි තියෙන්නෙ method එකකට.. එහෙනම් අපිට මේ තැන් දෙක වෙනස් කර කර method එකක් හදන්න පුළුවන් ක්‍රම 4ක් ගන්න පුළුවන්.. 



  1. පළවෙනි එක තමයි ඇතුළට මුකුත් ගන්නෙ නැතුව එළියට value එකක් යවන අවස්ථාව.
  2. දෙවෙනි එක තමයි ඇතුළට මුකුත් ගන්නෙත් නැතුව එළියට value එකක් යවන්නෙත් නැති අවස්ථාව.
  3. තුන්වෙනි එක තමයි ඇතුළට value එකක් ගන්නවා, හැබැයි එළියට value එකක් දෙන්නෙ නෑ.
  4. හතරවෙනි එක තමයි ඇතුළට value එකක් අරගෙන එළියටත් value එකක් දෙන අවස්ථාව.

ඉතින් මේ අවස්ථා හතරට අමතරව තව එකක්වත් තියෙන්න විදියක් නැති නිසා අපි method එකක් මේ අවස්ථා 4ටම හදන හැටියි ඒ ඒ අවස්ථා වලදි main method එකේ ඉඳන් ඒවට call කරන හැටියි බලමු.. 


Return Type

ඊට කලින් මම කියලා ඉන්නම් එළියට යවනවා කියන එකේ හරිම තේරුමයි කොහොමද ඒක වෙන්නෙ කියන එකයි. දැන් කලින් අපි method1 කියලා හදද්දි එළියට යවන තැන void කියලානේ දුන්නෙ? එහෙම void කියලා දෙන්නෙ අපි එළියට මුකුත් යවන්නෙ නෑ කියලා කියන්න, ඒ කියන්නෙ අපි method එක run වෙලා ඉවර වුනාම මුකුත් call කරපු තැනට return කරන්නෙ නෑ කියලා කියන්න තමයි void කියලා use කරන්නෙ..

අපිට මොනව හරි return කරන්න ඕනනම් අපි මේ void කියන එක වෙනුවට එහෙම return කරන්න ඕන value එකෙ data type එක තමයි ලියන්න ඕන.. ඒක නිසා අපි මේ කොටසට කියනවා return type එක කියලා.. උදාහරණයක් විදියට method එකෙ අවසානයට calculate වෙච්ච average එකක් යවන්න ඕනනම් මෙතන void වෙනුවට double කියලා තමයි ලියන්න ඕන. integer value එකක් නම් යවන්නෙ int කියලා ලියන්න ඕන. String value එකක් නම් String කියලා ලියන්න ඕන.. අන්න ඒ වගේ අපිට යවන්න ඕන කරන value එකේ data type එක තමයි void කියන එක වෙනුවට ලියන්න ඕන. integer array එකක් වුනත් යවන්න පුළුවන්. එහෙම යවනවම් මෙතන data type එක විදියට ලියවෙන්න ඕන int[] කියලා.. තේරුණා නේද?

මතක තියාගන්න මෙතනින් මෙහෙම ඒ data type එකට අදාල value එකක් යවන්න permission දුන්නට යවන්නනම් අන්තිමට යවන නිසා method එකේ අන්තිම statement එක විදියට return කියලා ලියලා return කරන්න ඕන value එක ලියන්න තියෙන්නෙ.. උදාහරණයක් විදියට 5 return කරන්න ඕනනම් අන්තිම statement එක විදියට return 5; කියලා ලියන්න තියෙන්නෙ.. double average = 5.5; වගේ double variable එකක තියෙන Value එකක් යවන්න ඕනනම් return type එක විදියට double දීලා අවසාන statement එක විදියට return average; කියලා දෙන්න විතරයි තියෙන්නෙ..


Parameters

ඊළඟට මම කියන්නම් කොහොමද value එකක් ගන්නෙ කියලා.. value එකක් ගන්නනම් ඒක අරගෙන දාගන්න variable එකක් තියෙන්න ඕනනේ.. ඒක නිසා අපිට value එකක් method එකකට ගන්න පුළුවන් වෙන තැන වෙන වරහන ඇතුලෙ අපිට ගන්න ඕන value එකට අදාල variable එකක් හදලා තියන්න ඕන.. ඉතින් අපිට මෙහෙම values දෙක තුනක් ඕනනම් කරන්න තියෙන්නෙ කොමා දදා අවශ්‍ය value වලට variable හදලා තියන්න විතරයි.. මෙහෙම values ගන්න වරහන ඇතුලෙ හදන variable වලට කියන්නෙ parameters කියලා.. එහෙමම මතක තියාගන්න මේ parameters වලට main method එකේදි එවන values වලට කියන්නෙ arguments කියලා.. ඒ වගේම parameters එකකට වඩා තියෙනවානම් arguments එවද්දි parameters වල තියෙන පිළිවෙලටම ඒවා එවන්නත් ඕන.. 

උදාහරණයක් විදියට void method2(String a, int b){} කියලා method එකකට values එවනවා නම් මුලින්ම String variable එකට value එකක් එවලා පස්සෙ integer එකක් එවන්න ඕන. order එක මාරු කරන්න බෑ අපිට.. ඒකත් අමතක කරන්න එපා..

එහෙනම් අපි මේ return type එකයි parameters යි අනුව method එන්න පුළුවන් ආකාර හතරට උදාහරණ අරගෙන ඒවා හදන හැටියි main method එකේදී call කරන හැටියි බලමුකෝ..


Case 1 : return කරන්නෙ නෑ, හැබැයි accept කරනවා...




මේකෙදි return කරන්නෙ නැති නිසා අපි return type එක විදියට දීලා තියෙන්නෙ void කියලා.. accept කරන නිසා වරහන ඇතුලෙ parameters හදලා තියෙනවා.. මෙතනදි නම් String value එකක් ගන්න a කියලා variable එකකුයි, integer value එකක් ගන්න b කියලා variable එකකුයි තමයි හදලා තියෙන්නෙ.. දැන් අපි බලමු කොහොමද මේ method එකට call කරන්නෙ කියලා..




method එකේදි String value එකකුයි integer එකකුයි ඉල්ලන නිසා ඒ දෙක දෙන්නෙ නැතුව අපිට call කරන්නනම් විදියක් නෑ.. ඉතින් ඒක නිසා අපිට ඒ පිළිවෙලටම වරහන ඇතුලෙ ඒ data type වලට අදාල values යවන ගමන්ම තමයි call කරන්න වෙන්නෙත්..


Case 2 : return කරන්නෙත් නෑ, accept කරන්නෙත් නෑ...




මේකෙදි return කරන්නෙ නැති නිසා return type එක විදියට void දීලා තියෙන්නෙ.. accept කරන්නෙ නැති නිසා වරහන ඇතුලෙ කිසිම parameter එකක් දෙන්නෙ නැතුව හිස්ව තියලා තියෙන්නෙ.. දැන් බලමුකො කොහොමද මේ වගේ method එකකට call කරන්නෙ කියලා..




Case 3 : return කරනවා, හැබැයි accept කරන්නෙ නෑ...




මේකෙදි return කරන්නෙ integer value එකක් නිසා return type එක විදියට int කියලා දීලා තියෙන්නෙ.. තව හොඳට බලන්න return statement එක ලියලා තියෙන්නෙ අන්තිම statement එක විදියට.. ඒක අමතක කරන්න එපා.. දැන් අපි බලමුකො කොහොමද මේ වගේ එකකට call කරන්නෙ කියලා..




method3() එකට call කරාට පස්සෙ එයා call කරපු තැනට integer value එකක් එවනවානේ.. ඉතින් අපි මෙහෙම එවන value එක අල්ල ගන්න ඕන නිසා තමයි x කියලා integer variable එකක් හදලා method එක call කරාම එන value එක ඒකට දාන්න කියලා තියෙන්නෙ.. අපිට එහෙම එන value එක use කරන්න ඕන නැත්නම් මෙහෙම int x කියලා variable එකක් හදලා ඒකට දාන්න කියලා නොලිව්වට වැරුද්දක් නෑ. ඒත් method3() එකේ code ටික run වෙනවා. මෙහෙම variable එකක් දෙන එකෙන් වෙන එකම දේ තමයි අපිට එහෙම එන value එක use කරන්න පුළුවන් වෙන එක..


Case 4 : returnut කරනවා, acceptut කරනවා...




මේකෙදි integer value 2ක් ගන්න a,b කියලා integer variable 2ක් parameters විදියට දීලා තියෙනවා.. ඊට පස්සෙ එහෙම ගන්න values වලින් average එක calculate කරලා ඒක return කරන නිසා return type එක විදියට double කියලා දීලා තියෙන්නෙ.. අපි දැන් බලමු කොහොමද මේකට call කරන්නෙ කියලා..




මෙතනදි උත්තරේ 37.5 කියලද එන්නෙ?? ඇත්තටම එහෙම වෙන්නෙ නෑ.. උත්තරේ එන්නෙ 37 යි කියලා.. කට්ටියට මතකද දන්නෙ නෑ මෙතනදි අපි double variable එකකට දැම්මට integer operation එකක් වෙන නිසා අපිට integer වලින් cast වෙලා තමයි උත්තරේ එන්නෙ.. අපිට double value එකක්ම ගන්න ඕනනම් double වලින් cast කරන්න වෙනවා.. Casting මතක නැත්නම් සම්පූර්ණ විස්තරේම මෙතනින් ගිහින් බලලා එන්නකො..




එහෙනම් methods කියන්නෙ මොකක්ද, කොහොමද method එකක් හදාගන්නෙ සහ ඒවට call කරන්නෙ කොහොමද කියලා හැමෝටම තේරුනා කියලා හිතනවා.. එහෙනම් අදින් අපේ java kuppiya ඉවර කරමු.. ඊළඟ කොටසෙ ඉඳන් අපි OOP එක්ක හමු වෙමු කියලා සතුටින් කියන ගමන් මම සමුගන්නම්...



60 comments:

  1. aiya variable types karannadda...

    ReplyDelete
    Replies
    1. kollo e tika dala tiyenne kalin..

      http://lankadroid.blogspot.com/2014/09/java-part-5-data-types-and-variables.html

      Delete
  2. This comment has been removed by the author.

    ReplyDelete
  3. එලටම තේරෙනවා...ස්තුතියි බ්‍රෝ

    ReplyDelete
  4. thanks bro. ela wedak hodtama teruna..

    ReplyDelete
  5. Aiye wade patta. Supiri. Awula thiyenne paper eke diga prashnayak dakkama baya hithena eka thama bro ! Thanx bro , methods nam goda :D

    ReplyDelete
  6. This comment has been removed by the author.

    ReplyDelete
  7. Patta wadak .all the best for bright future

    ReplyDelete
  8. agaya karanawa aiye c# puluwannam dandako

    ReplyDelete
  9. niyamai aiyee. hodata ternw. digatam krn yanna. api aiat ekka innawa

    ReplyDelete
  10. ptta wedak bro thawa aluth dewal danna

    ReplyDelete
  11. Supiri Bro....moleta supiriyata wadina widihata okkoma wisthara karala thyanawa thanx bro well done......

    ReplyDelete
  12. Hodatama theruna.superb...thanks....

    ReplyDelete
  13. Thankz aiye. Godak watinwa me lessons tika.

    ReplyDelete
  14. thanks ayye danna danna ewunta kiwwa godak un meken goda gihin thibba

    ReplyDelete
  15. ගොඩක් පින් සහ ස්තූතියී අයියා, එපා වෙල තිබුන, බයට අල්ලන්න නැතුව හිටපු programming ඔයා ආස එකක් කලා. දැන් මොනවද වෙන්නෙ කොහොමද වැඩ කරන්නේ ඔක්කොම තේරෙනවා.

    ReplyDelete
  16. lassanata explain karala thiyenawa aiye!
    thank you very much!!!

    ReplyDelete
  17. Pattam bn..Uba kiyl dena ewa supiriytm pahadili..jaya wewa mchn..

    ReplyDelete
  18. kalekata kalin liyapu blog ekak unath, 2021th api asawen kiyawala balala igena gannawa. oyata bohoma pin aiye api wage lamai wenuwen mehema blog ekak liwata...

    ReplyDelete
  19. patta ban awuruduganak awabodayak nethuwa use kare salli dilath mehema igenaganna beri unaa fatta ban ubanam supiri porak❤✔👍

    ReplyDelete
  20. wade nam niyamai ayye. hondatama theruna. Ayyata godak sthuthi..

    ReplyDelete
  21. sahenna watina deyak oya karanne ayye.kiyala dila thiyena widiha hodatama therenewa. thank you!

    ReplyDelete
  22. Supiriyatama therenawa. Good Job.. Keep It Up bro

    ReplyDelete
  23. පට්ටම වටිනව අයියෙ ඇත්තටම මම HNDIT කරනව ඇත්තටම ප්‍රොගැමින් ගැන ලොකුවටම දැනුමක් තිබුන්නෑ යම් ප්‍රමාණයක දැනුමක්තමා තිබුනෙ ඒත් ඔයාගෙ මේ බ්ලොග් එකෙනුයි යූටියුබ් චැනල් එකයි බැලුවට පස්සෙ එ දැනුම දෙගුණ තෙගුණ උනා ගොඩාක් පින් අයියෙ ඔයාට තේරුම් ගන්න මාරම පහසුයි Good luck!

    ReplyDelete
  24. Ayye ara double average = ( a + b )/2 code eka double nisath call karanne double nisath ei ayye uththare 37.5 noweinne. poddak kiyannako ayye please

    ReplyDelete
  25. very very important

    ReplyDelete
  26. very very important

    ReplyDelete
  27. thank you mecchara kal vikara wela thibunu method kotasa me blog eka kiyewwama theruna thank you brother keep it up brother

    ReplyDelete
  28. thank you ayye. godak pin

    ReplyDelete
  29. පට්ට අයියේ ❤️

    ReplyDelete

Contact Form

Name

Email *

Message *