Skip to main content

OOP -What is class & object?

අපි දැන් බලමු මොකක්ද  මේ Class එකක් කියන්නේ , මොකක්ද මේ Object  එකක් කියන්නේ කියලා.

Class

කෙටියෙන්ම  කිව්වොත් class එකක් කියන්නේ object එකක සැලැස්මක්, අච්චුවක්  වගේ දෙයක් ඒ කියන්නෙ blue print එකක්. object එකක ලක්ෂණ, ක්‍රියාකාරීත්වය යනාදිය සියල්ල තීරණය කරණු ලබන්නේ class එක විසින්. අපි objects සැදීම සඳහා classes භාවිත කරනවා කියන එක ගෙන idea එකක් මගේ යාළුවන්ට එන්න  ඇති. අපිට  එක class එකකින් objects ඕනේ තරමක් හදන්න පුළුවන්. class එකක්  සැලසුම් කිරීමේදී එහි object එකට අදාල පහත අංග ඇතුල් කෙරෙනවා. ඔයාලට පැහැදිලි වෙන්න මම class diagram එකකින් පෙන්වන්නම්.

  • Attributes/properties/state 
  • Constructors 
  • Methods/Functions

උදාහරණයක් විදිහට මම Box කියන class එක ගන්නම්.



මේ Box කියන class එකේ තියෙන attributes තමයි length, width & height කියන්නේ. Box() කියන්නෙ default constructor එක, setValues , setLength, setWidth, setHeight, getVolume, getArea, printVolume, printArea කියන්නෙ Box class එකේ තියෙන methods එහෙම නැත්නම් functions කියන්නේ. 
මම හිතනවා ඔයාලට දන් class එකක් කියන්නේ මොකක්දේ කියන එක ගෙන පැහැදිලි වුනා කියලා.

Object

අපි දැන් බලමු object එකක් කියන්නෙ මොකක්ද කියලා. කෙටියෙන්ම කියනවා නම් Class එකකින් අපි හදන instance එකක් අපි Object එකක් කියලා හඳුන්වනවා. එහෙමත් නැත්නම් data & method වල එකතුවක් ලෙසත් හඳුන්වන්න පුළුවන්.සැබෑ ලෝකයේ වස්තුන් java තුල නිරුපනය කරන්නේ objects භාවිතයෙන් . classes තමයි object එකේ design එක ගෙන තීරණය කරන්නෙ.


ඔයාලට දැන් class ආණ්ඩ object ගැන idea එකක් තියෙනවා කියලා මන් හිතනවා. එනිසා මම Box class එක java වලින් implement කරන ගමන් ඔයාලට කොහොමද object එකක් අපි java program එකක හදන්නේ කියලා කියන්නම්.



  Box.java

ඔය විදිහට Box.java class එක අපි ලියනවා. දැන් අපිට Box class එකේ object එකක් BoxTest කියන class එකේ හදා ගන්න ඕනේ . අපි බලමු කොහොමද Box class  එකේ object එකක් හදන්නෙ කියලා.




BoxTest.java


 class එකක object එකක් සදා ගැනීම සඳහා අපි java වලදි new කියන keyword එක use කරනවා. 
java වලින් object එකක් හදන Syntax කොහොමද කියලා අපි බලමු.

className objectReferenceName= new constructor ;
උදාහරණ:
Box b1=new Box();
Box b2=new Box();

දැන් ඔයාලට ප්‍රශ්නයක් ඇති මොකක්දේ මේ object reference එක කියන්නේ කියලා. අපි ඒ ගෙන idea එකක් ගන්න හදපු Box class එකේ object reference එක print කරලා බලමු ඇත්තටම මොකක්දේ මේ කියලා.

BoxTest.java



ඔයාලට පේනවා ඇති BoxTest class එකේ object 2ක් හදලා තියෙනවා b1,b2 කියලා. ඒ වගේම ඒ reference එක print කලහම අපිට ලැබිල තියෙනවා Box@15db9742, Box@6d06d69c කියලා output එකක්. ඇත්තටම මොකක්දේ මේ ?

  
අපි new කියන keyword එක use කරලා Box class එකේ object එකක් හැදුවනේ b1 කියලා.new keyword එක මගින් සිදුවන්නේ දී ඇති class type එකෙන් object එකක් RAM එක තුල සාදා එයට reference එකක් (යොමුවක්) අදාල variable එක වෙත යැවීමයි. අපේ උදාහ‍රණය අනුව ගතහොත්, Box object එකක් RAM එක තුල සාදා එයට reference එකක් b1 නමැති variable එකට assign වෙනවා .  b1 java variable එක තුල ඇත්තේ Box object එක RAM එක තුල පවතින ස්ථානයට අදාල memory address එක. අන්න ඒ  memory address එක තමයි ඉස්සෙල්ල ඔඋට්පුට් එක විදිහට print උනේ.

Memory location address එක එන්නේ className@XXXXXXXX කියලා.

මම දැන්  ජාවා ප‍රිගණක භාෂාවේ ඇති සුවිශේෂ වාසියකුත්  ඔයාලට මේ ගමන්ම  කියනම් . අපි  හදන objects සඳහා වෙන් ක‍රන  memory ප්‍රමාණයන් නැවත නිදහස් කරන්න  අපිට වෙහෙස වීමට අවශ්‍ය වෙන්නේ නැ . මොකද  එක  කරන්න  JVM එක මගින් ක්‍රියාත්මක වන සුවිශේෂ thread එකක් වන "Garbage Collector" බැඳී සිටිනවා. කෙටියෙන් කියනව නම් java කියන්නේ automatic garbage collect කරන programming language එකක් .

ඔන්න දැන් මම අපි හදපු box class එකේ තියෙන attributes and methods වලට values pass කරලා පෙන්වන්න හදන්නේ අපි හදපු object එක use කරලා.

Box.java 



output


මම හිතනවා ඔයාලට class and object ගෙන පෙහෙදිලි අවබෝදයක් ලැබුන කියලා. අපි එහෙනම් ඊළඟ පාඩමෙන් හමුවෙමු..........

Comments

  1. Explained very well....easy to understand...Keep up the good work...

    ReplyDelete

Post a Comment

Popular posts from this blog

IoT Project - Smart Crop Seer 1.0

Smart C rop S eer 1 .0         Team XitorS Our Team Members Kelum Perera Visura De Silva Wageesha Ishani Charitha Wickramanayake Main purpose of the project   So, the main purpose of this project is to develop an IoT  device and and mobile application which can be used by anyone who has a very little knowledge in technology to aware of soil properties, environmental properties and demand in market.     Main objectives of the project Following would be the main objectives of the project.   To indicate availability of Nitrogen, Phosphorous and Potassium in the soil (whether nutrients are low, average or high)   To indicate moisture level in soil To indicate humidity of surrounding air  To indicate temperature of surrounding air  To show a list of most suitable crops to cultivate  To identify two agricultural zones to conduct the research To identify m...

OOP -Introduction

අපි මුලින් බලමු මොකක්ද මේ Object Oriented Programming concept එක කියන්නෙ කියලා. OOP කියන concept එක බිහිවෙන්න කලින් අපි භාවිත කලේ Structured Programming කියන concept එක. නමුත්  Structured Programming concept එක භාවිත කරලා මහපරිමාණ software නිර්මාණය කරන කොට programmers ලට නොයෙකුත් ප්‍රශ්න වලට මුහුණ දීමට සිදුවුණා. ඒ කියන්නේ structured concept එකෙන්  මහපරිමාණ software develop කරනකොට එකම class එකක සියළුම codes ලියන නිසා code වල errors , bugs ආවහම errors සහිත coding lines හඳුනාගෙන ඒවා නැවත සකස් කිරීමට‍ විශාල කාලයක් වගේම විශාල    වෙහෙසක් programmer ට දරන්න සිදුවෙනවා.  මොහොතකට හිතල බලන්න යාලුවනේ අපි structured programming concept එක use කරලා Foodcity එකකට software එකක් develop කරනවා කියලා. ඒ programme එකේ code lines විශාල ප්‍රමාණයක් තියෙනවා. ඉතින් ඒ වගේ අවස්ථාවක errors ආවහම , ඒ වගේම programmer  develop කරපු software එකට අලුතින් new parts add කරන්න අවශ්‍යයි කියල අපේ client කීවහම නැවත new parts add කිරීමේදී software එක develop කිරීමේදී වැය වුන කාලය , ඒ සඳහා c...

MVC Design Pattern (Model-View-Controller)

ඉතින් යාලුවනේ මම අද ඔයාලට කියන්න යන්නෙ software industrial එකට ගොඩක් වැදගත් වෙන design pattern එකක්. ඒ තමයි MVC එහෙමත් නැත්නම් Model-View-Controller කියන design pattern එක. අපි දැන්  බලමු මොනවද මේ model , view ,controller කියන ඒවායින් කියවෙන්නේ කියලා. Model  : අපි model එකක් කියලා සාමාන්‍යයෙන් කියන්නෙ object එකකට.අපේ program එකේ   ඇතුලත වෙන ක්‍රියාවලිය අපි ඉදිරිපත් කරන්නේ model එකකින්.  View : අපි දැන් බලමු view එකක කියන්නෙ මොකක්දේ කියලා. view එක කියන්නෙ model එකෙ       තියෙන දේවල් user ට පෙන්වන්නේ එහෙමත්මේ නැත්නම් visualise කරන්නේ මේ  view එක හරහා තමයි. Controller : අපි controller කියලා කියන්නෙ model එකේ වෙන වෙනස්කම් view එකේ update   කරන්නේ ඒවගේම model එකයි view එකයි control කරන්නේ මේ controller එකෙන් තමයි. මේ design pattern එකේ මේ කොටසේ තමයි business logic එක අපි ලියන්නේ. හරියට අපේ brain එක වගේ තමයි controller එක ක්‍රියාකරන්නේ.  මේ MVC design pattern එකේ තියෙන ප්‍රධාන වාසියක් තමයි අපි program එකේ ඔක්කොම codes ටික එකම...