ඔන්න කීප දෙනෙකුට ප්රශ්නයයක් ඇවිල්ලා තිබ්බා මේ Encapsulation සහ Abstraction ගැන ඒ හින්දා ටිකක් ඒක වැඩිපුර පැහැදිලි කරන්න හිතුවා
මුලින්ම පොතේ තියන විදියට දාන්නම්කෝ
Encapsulation is information hiding.
Abstraction means working on a higher level, not worrying about the internal details
Encapsulation හැම තිස්සෙම සම්බන්ද වෙන්නේ දත්ත එහෙම නැත්නම් object එකක state එකත් එක්ක ..
නැත්නම් Encapsulation එකක්ති වෙන්නේ අපේ දත්ත වටා බැම්ම බදින එක .. නමුත් ඒ object එකේ දත්ත භාවිතයට ගන්න පුද්ගලයට සීමා සහිත කපොලු කිහිපයකුත් තියනවා දත්ත වලට පිවිසෙන්න
Abstraction වලදි අපි object එකක behavior එක පිලිබදව තමා සම්බන්ද වෙන්නේ මෙතනදි මේ behavior එකෙන් object එකකේ state එක වෙනස් කිරීම සිද්ද වෙනවා නමුත් එය වෙනස් වන විදිය ගැන එහම නැත්නම් implementation එක ගැන ඒ object එක භාවිතා කරන පුද්ගලයට නිරාවරනය වීමක් වෙන්නෑ
ඔන්න අපි තව දුරටත් මේක අපිට සමීප උදාහරනයකින් ගම්මුකෝ
ඔන්න තියෙනවා වතුර ටැංකියක් මේකෙ තියෙන වතුර තමයි data .. මේ ටැංකියට පිටාර නළයකුයි .. වතුර ඇතුල් කරන්න නළයකුයි ..වතුර ගන්න නළයකුයි තියෙනවා මේ නළ ටික තමා අපේ Encapsulation methods
අපිට ටැංකියේ වතුර ගන්න හරි ටැංකිය පුරවන්න හරි ඕනෑ උනාම අපි ඔය නළ ටික තමා පාවිච්චි කරන්නේ නැතුව ටැංකියේ උඩ පියන ඇරලා වතුර දාන්නවත් ගන්නවත් යන් නෑනෙ
අන්න ඒ වෙගේ වතුර (data ) වලට තියෙන අනවශ්ය ප්රවේශ මාර්ග වලක්වලා වඩා ආරක්ශාකාරී කර්මයකට (Encapsulation methods \ getters and setters ) මගින් වතුර (data ) වලට පිවිසීමට ඉඩ ලබා දීම තමා Encapsulation කියන්නේ
Abstraction කියන්නේ මේ වතුර ටැංකියේ වතුර පිටවෙන නලයට හයි කරලා තියෙන ටැප් එකක් වගේ වතුර ටැංකියෙන් වතුර ගන්න ඕනි එක්කෙනෙක් කරන්නේ ටැප් එක අරින එක ... එතකොට වතුර එනවා ... නමුත් මේ වතුර එන්න බලපාන විභව ගක්තිය පීඩනඅන්තරය වගේ දේවල් ටැප් එක අරින එක්කෙනාට පේන් නෑනෙ ..එයා අනික ඒ ගැන වද වෙන්නත් ඕනි නෑ .. Abstraction කියන්නේත් ඒවගේ .. වතුර (data ) වලින් අවසාන ප්රයෝජනය ගන්න එක්කෙනාට ඒ වතුර (data ) එතෙන්ට ආවෙ කොහොමද කියලා දැනගන්න නොදෙන විදියට කෝඩ් ලියන එක තමා Abstraction කියන්නේ
මම හිතනවා කස්ටියටම තේරෙන්න ඇති කියලා මෙතන තියෙනවා පොතේ හැටියට තවවත් ප්රශ්න තියෙනවනම් අහන්න පුලුවන් විදියට කියලා දෙන්නම් (OOP එව්වා විතරයි හොදේ)




5 comments:
රායිට්. එතකොට (අර කලිං ගත්තු උදාහරණේ විදියට) Encapsulation කියන්නේ වයර් කැලි ඇමිණීමේ බරපතල ක්රියාදාමේ ස්විච් එකකිං වැසීම. Abstraction කියන්නේ එහෙම හයි කරපු ස්විච් එක පාවිච්චි කරලා බල්බ් එක දැල්වෙන හා අක්රිය යන අවස්ථා වලට පත් කරවා ගැනීම.
නේ?
@budhajeewa : හරියට හරි ... හැබැයි ස්විච් එක ඇතුලේ ක්රියාකාරිත්වය අපිට වැඩක් නෑ .. අපි දන්නේ ස්විච් එක දෙපැත්තට දාන්න විතරයි
නියමා..............යි.
දිගටම ලියමු..
එල සහෝ. දිගටම ලියමු.
Niyama wedak
Post a Comment
මේ ගැන මොකද හිතන්නේ ?