For Android device For iOS device

សីហា

មេរៀនទី ១២៖ Classes and Objects

→ ប្អូនៗ​ជា​និស្សិត IT គួរតែស្វែងយល់ពី​បច្ចេកវិទ្យា​បន្ថែម មិនគួររៀនតែតាមមុខវិជ្ផានៅសាលាតែប៉ុណ្ណោះទេ

មេរៀនទី១២នេះនឹងនាំ​ឲ្យ​អ្នកដឹង​នូវ​ចំណុច​ដូច​ខាងក្រោម​៖

- អ្វីទៅជា procedural programming?

- ហេតុផល​តម្រូវ​ការចាំបាច់​ប្រើ​ប្រាស់ classes និង objects

- អ្វីទៅជា classes? អ្វីទៅជា objects?

- អ្វីទៅជា constructors និង​តួនាទី​របស់វា? ព្រមទាំង​ប្រភេទ constructors ផ្សេងៗ​

- អ្វីទៅជា destructors និង​តួនាទី​របស់វា?

- តើ this Pointer មានមុខងារអ្វី?

- ការ​ប្រើ​ប្រាស់ sizeof () ជាមួយ class និងការបញ្ជៀស object ចេញពី statck

- របៀបធ្វើឲ class ​ការពារ​ភាពស្ទួន object របស់វា និងការ​ប្រើ​ប្រាស់ singleton class

- អ្វីទៅជា aggregate class? អ្វីទៅជា aggregation object?

♦ អ្វីទៅជា Procedural Programming ?

ជាង១០មេរៀនកន្លងទៅ គ្រប់ programs ទាំងឡាយ​ដែល​អ្នកបាន​បង្កើត និង​សិក្សា គឺសុទ្ធតែជា programs ​ដែល​កើតឡើងដោយ​ប្រើ​ទម្រង់ procedural programming ។ បើដូច្នេះតើ​ពិនិត្យ​ដូចម្ដេចទើបដឹងថា programs ​របស់អ្នក​កំពុង​ប្រើ​ទម្រង់ procedural programming?

Procedural programming គឺជា​ទម្រង់​ដែល​រាល់ការដោះស្រាយ​បញ្ហា ជា​ពិសេស​គឺលំហូរនៃ​ទិន្នន័យ គឺស្ថិតនៅក្រោមការ​គ្រប់គ្រង​របស់ function ដ៏​សំខាន់​តែមួយរបស់ program, ក្នុង​ភាសា C++ ​ត្រូវបាន​ដឹងថាគឺជា main () ហើយពឹងផ្អែកលើការអនុវត្តកូដពីលើចុះក្រោម ថ្វីត្បិតតែ​ទម្រង់​នេះអាច​ផ្ដល់​នូវ​លទ្ធភាព​ឲអ្នក programmers អាចពុះច្រៀក​បញ្ហា​ធំ​ឲ្យ​ទៅជាកង់ៗ​ដែល​ហៅថាការ​បង្កើត functions ​ក៏​ដោយចុះ ក៏ functions ​ទាំងនោះ​នៅតែស្ថិត​ក្នុង​ចង្កោមនៃ program តែមួយដ​ដែល ។ រាល់ការ​បង្កើត variables និង constants ទោះបីវាជា global local ​ក៏​ដោយ គឺវា​បង្កើត​ឡើង​សម្រាប់​បម្រើ​ឲតែ program នោះតែប៉ុណ្ណោះ ។  ជាការពិតណាស់​ទម្រង់ procedure programming គឺ​ត្រូវបាន​ប្រើ​ជាយូរយារ​ក្នុង​ការ​បង្កើត​កម្មវិធី​ជា​ច្រើន​ដោយអ្នក programmers ផ្សេងៗ ។ ក៏ ប៉ុន្តែ​នៅពេល​ដែល programs កាន់តែធំ និងមាន​បញ្ហា​កាន់តែស្មុកស្មាញ ការ​ប្រើ​ប្រាស់​ទម្រង់ procedure programming គឺនឹងនាំមក​នូវ​បញ្ហា​ពិបាកៗ​ដែល​ត្រូវរកវិធីដោះស្រាយដោយប្រយ័ត្នប្រយែង​បំផុត ។ ឧទារហណ៍​អ្នក​ក៏​បានឃើញ programs កន្លងមកនៅ​ក្នុង​សៀវភៅនេះ​ដែល​ប្រើ​ប្រាស់ procedure programming រាល់ data គឺ​ត្រូវបាន​តំណាងដោយ variables ដូច្នេះរាល់​ការងារ រួមទាំង functions ទាំងឡាយនៅ​ក្នុង programs ​ទាំងនោះ​គឺត្រូវ​រៀបចំ​ឡើង យ៉ាង​ប្រទាក់ក្រឡា ដើម្បី​អាចទាញ​ទិន្នន័យ​ចេញពី variables ​ទាំងនោះ​ចេញពី main () function ។ ដូច្នេះតើនឹងមានអ្វីកើតឡើង បើសិនជា programs ​តម្រូវ​ឲមានការផ្លាស់ប្តូរ​ទម្រង់ variables មួយចំនួន? ​ចម្លើយ​គឺថា នឹងធ្វើឲរចនាសម្ព័ន្ធ​ទិន្នន័យ​របស់ program នឹងមានការប្រែប្រួល ជាហេតុធ្វើឲអ្នក programmers ត្រូវតែ​ធ្វើការ design functions ឡើងវិញ យ៉ាង​នេះហើយទើបធ្វើឲអ្នក programmers ​ទាំងនោះ​ត្រូវ​ចំណាយ​ពេល​ច្រើន​សម្រាប់​ដោះស្រាយ​បញ្ហា និងការ​សរសេរ​កូដឡើងវិញ ។

​ដោយសារ​ការ​ប្រើ​ប្រាស់​ទម្រង់ procedure programming មាន​នូវ​ផលវិបាកបែបនេះហើយទើបធ្វើឲអ្នក programmers ជា​ច្រើន​បានផ្លាស់ប្ដួរ​ទម្លាប់​របស់ខ្លួនពីការ​ប្រើ​ប្រាស់ procedure programming ទៅជា​ទម្រង់ Object-Oriented Programming (OOP) ជាជំនួសវិញ ហើយនេះ​ក៏​ជាមូលហេតុ​ដែល​លោក Bjarne Stroustrup បាន​ធ្វើការ​បន្ថែម​នូវ​សមត្ថភាព OOP នេះ​ទៅកាន់​ភាសា C ​ដែល​បាន​បង្កើត​ឡើងដោយលោក Dennis Ritchie ទៅជាភាសាថ្មីមួយទៀតគឺ C++ 

♦ អ្វីទៅជា Class ?

Class គឺជា​ថ្នាក់​រៀនមែនទេ? មិនមែន! ប៉ុន្តែ​វាអាចជា​ប្រភេទ ឬ​គំរូ​នៃ​ទិន្នន័យ​អ្វីមួយទៅវិញទេ ។ ឥឡូវនេះ​ខ្ញុំ​និយាយសំដៅលើពាក្យមួយគឺ មនុស្សតើអ្នកគិតថាពាក្យ មនុស្ស​ដែល​ខ្ញុំ​បាននិយាយនេះសំដៅ​ទៅលើ​អ្នក​ណាមួយ​ដែរ ឬ​ទេ​? ប្រាកដណាស់​ខ្ញុំ​មិនបាន​សំដៅ​ទៅលើ​អ្នកណាឡើយ ក៏ ប៉ុន្តែ​ខ្ញុំ​កំពុង​និយាយសំដៅ​ទៅលើ​ប្រភេទ​មួយ​ដែល​មានជីវិតរស់​នៅលើ​ផែនដីគឺ មនុស្សថ្វីត្បិតតែ​ខ្ញុំ​មិនបាន​និយាយសំដៅ​ទៅលើ​អ្នកណាម្នាក់នៃមនុស្ស​ក៏​ពិតមែន ក៏ ប៉ុន្តែ​អ្នកអាចនឹងដឹងថាមនុស្សគឺ​ខុសពី​សត្វមានជិវិត​ផ្សេងទៀត​ដែល​រស់​នៅលើ​ផែនដីនេះ គឺមនុស្សម្នាក់ៗ មាន​ឈ្មោះ ថ្ងៃ​ខែ​ឆ្នាំ​កំណើត ទីកន្លែង​កំណើត ភេទ សញ្ជាតិ សម្បុរ ។ ល ។ ដែល​ជាអត្តសញ្ញាណ​សម្រាប់​សម្គាល់មនុស្សម្នាក់ៗ ជា​ពិសេស មនុស្សម្នាក់ៗ​អាច​សម្តែង​នូវ​អំពើអ្វីមួយឲគេបានដឹង ចេះនិយាយ យំ ស្រែក សើច គិត ។ ដូច្នេះអ្វី​ដែល​ខ្ញុំ​បាន​រៀបរាប់​អំពីអ្វី​ដែល​មនុស្សម្នាក់ៗ​មាន គឺ​ទាំងអស់​នោះជា ធាតុផ្សំ (members) ដែល​បង្ហាញ​ពីអត្តសញ្ញាណរបស់មនុស្ស ជាសរុបពាក្យថា មនុស្ស​  អាចហៅថា data type ឬ​ហៅថា user-defined types​សម្រាប់​សម្គាល់មនុស្សម្នាក់ៗ​

​ពិសេស​យើងជាអ្នក programmers ​នីមួយៗ​អាច​បង្កើត​ឡើង​តម្រូវ​នៅ​ក្នុង​ការ​សរសេរ​កូដ​សម្រាប់ programs ​ដែល​គ្រប់គ្រង​អ្វីមួយ​ទាក់ទងនឹង​មនុស្ស ឧទាហរណ៍​ដូចជា program ​គ្រប់គ្រង​ស្ថិតិ និងអត្តសញ្ញាណប័ណ្ណ គ្រប់គ្រង​ព័ត៌មាន​បោះឆ្នោត គ្រប់គ្រង​់បុគ្គលិក ។ ល ។ ដូច្នេះពាក្យ មនុស្សអាចនិយាយបានថាគឺជា class រីឯ ឈ្មោះ ថ្ងៃ​ខែ​ឆ្នាំ​កំណើត ទីកន្លែង​កំណើត ភេទ សញ្ជាតិ សម្បុរ ចេះនិយាយ យំ ស្រែក សើច គិត ។ ល ។ ដែល​ជាធាតុផ្សំ​ដែល​មាននៅ​ក្នុង​មនុស្សម្នាក់ៗ ត្រូវបាន​ហៅថា members របស់ class

ជាការសន្និដ្ឋាន​ចុងក្រោយ class គឺជា​គំរូ​នៃ​ទិន្នន័យ​អ្វីមួយ ដែល​អាចហៅថាជា data typeuser-defined types ដ៏​ពិសេស​មួយ ដែល​ត្រូវបាន​អ្នក programmers ​បង្កើត​ឡើងផ្សេងៗ​គ្នា​សម្រាប់​ការងារ​តំណាង​ទិន្នន័យ​អ្វីមួយនៅ​ក្នុង programs របស់​ពួកគេ ។

♦ ការ​បង្កើត Class

នៅ​ក្នុង​ភាសា C++ អ្នកអាច​បង្កើត (definition) class មួយ ឬ​ច្រើន តាម​តម្រូវ​ការជាក់ស្ដែងនៅ​ក្នុង programs ​របស់អ្នក​ដោយមិន​កំណត់​ចំនួនឡើយ ។ ការ​បង្កើត​ class ត្រូវអនុលោមតាម​ទម្រង់​ដូច​ខាងក្រោម​៖

class ClassName

{

members

} ;

members មានចំនួនពីរ​ប្រភេទ គឺ data members  ឬ​ហៅថា member attributes  ឬ​ក៏​ជា member variables និង methods  ឬ​ហៅថា member functions

- data members គឺសំដៅលើ variables ​ដែល​បង្កើត​នៅ​ក្នុង​ block របស់ class

- methods គឺសំដៅលើ functions ​ដែល​បង្កើត​នៅ​ក្នុង​ block របស់ class data  ឬ​ methods ​ទាំងពីរ​ប្រភេទ​នេះមិនដាច់ខាតត្រូវតែមាន​ទាំងពីរ​នោះទេ គឺ​អាស្រ័យ​តាម​តម្រូវ​ការនៃ class ​ដែល​ត្រូវ​បង្កើត ។

→ សម្រាប់​អត្តបទទាំងស្រុងនៃមេរៀនទី ១២ មានចំនួន ១១៦ទំព័រ នេះសូមអ្នក​ទាំងអស់​គ្នា​ចូលទៅ Download កម្មវិធី ANTLearner សម្រាប់ Android & Windows តាម Link ខាងក្រោម ៖   http://www.antclasses.com/help/page/download.html

→ សម្រាប់​មេរៀន C++ ក្នុង​កម្មវិធី ANTLearner សរុបមានចំនួន ១២មេរៀន គិតត្រឹមខែឩសភា ឆ្នាំ ២០២០ នឹងមានចំនួន ៥៤៥ទំព័រ Link Download សម្រាប់ Android https://play.google.com/store/apps/details?id=com.antkh.antlearning

​ក្នុង​នោះ​ផងដែរ​កម្មវិធី ANTLearner និង​ចូលរួម​ចំណែក​យ៉ាង​សកម្ម ក្នុង​ការបង្រៀន​វគ្គ online learning នៅអាន -ANT ដោយសិស្ស គ្រាន់តែ​ប្រើ​ប្រាស់ ID ដែល​ប្អូនៗ​បានចុះ​ឈ្មោះ​រៀននៅអាន -ANT ដើម្បី​ទាញយក​វីឌីអូ ឬ​ឯកសាផ្សេងៗ​ដែល​គ្រូ ឬ​សាលាបាន​ផ្ដល់​ឲ្យ​បំពេញ បន្ថែម​នូវ​ការង្រៀន​តាមរយៈ​online របស់យើង​ខ្ញុំ ។  

→ ទាញយក​កម្មវិធី ANTLearner http://www.antclasses.com/help/page/download.html

​សម្រាប់​លោកអ្នក​ដែល​ចង់បានអត្ថបទ ចំណេះដឹង ឬ​វគ្គ​សិក្សា​បើកថ្មីៗ​នៅអាន-ANT សូមចុច Like លើ Page

https://www.facebook.com/ant.com.kh & https://www.facebook.com/anttrainning

​ប្រសិនបើ​លោកអ្នក​ចង់តាមដាន ឬ​មានចម្ងល់​ទាក់ទងនឹង​កម្មវិធី​ ANTLearner  ឬ​កម្មវិធី​ជា​ច្រើន​ទៀត​បង្កើត​ដោយអាន-ANT សូមចុច Like https://www.facebook.com/ANTTechnologyTrainingCenter

​ប្រសិនបើ​លោកអ្នក​មាន​បំណង​ចែករំលែង​ចំណេះដឹង​ IT ដល់សមាជិក​ដទៃ​សូមចូល​ទៅកាន់​ Group https://www.facebook.com/groups/ANTTrGroup/

. ​ប្រសិនបើ​មានចង្ងល់ ឬ​មាន​សំណួរ​ផ្សេងៗ​សូម​ផ្ញើ​សារចូល Facebook : https://www.facebook.com/anttrainning

→ លេខ​ទូរសព្ទ​ទំនាក់ទំនង ០១០/០១៦ ៦៦៦ ៦៥៣

💒ទីតាំង​ #86B ​ផ្លូវ​ 313 កែង 606 សង្កាត់បឹងកក់២ ទួលគោក

https://maps.app.goo.gl/cdi3hTED27tbHBaB9

មតិ និង​យោបល់​ទៅលើ​អត្ថបទ​នេះ (តាម Facebook)

ខាងក្រោម​នេះ​ជា​យោបល់​ផ្សេងៗ​របស់​អ្នកទស្សនា