1.object
2.classes
3.data
abstraction(தரவு அருவம்) மற்றும் Encapsulation
(உறைபொதியாக்கம்).
4.Inheritance.(மரபுரிபம்)
5.Polymorphism(பல்லுருவாக்கம்)
6.Dynamic
binding(இயங்குநிலை பிணைப்பு)
7.message
Passing(செய்தி அனுப்புதல்)
objects.
இவை
கிளாஸ்களின் உறுப்பினர் ஆகும். அது ஒரு பொருளாகவோ, நபராகவோ, வங்கி கணக்காகவோ இருக்கலாம்.பொருள்நோக்கு
நிரலாக்கமானது ஆப்ஜெக்ட்சையும் அதற்குள் நடக்கும் தகவல் தொடர்பையும் அடிப்படையாகவும்
கொண்ளுள்ளது.அவை உண்மை உலகப் பொருட்களாக இருக்கலாம்.ஆப்ஜெக்ட்ஸானது நிணைவகத்தில் இடத்தையும்
அதற்குண்டான நிணைவக முகவரியையும் கொண்டுள்ளது.
ஒரு
நிரலானது இயக்கப்படும் பொழுது ஆப்ஜெக்ட்ஸானது ஒன்றுக்கொன்று தகவல் அனுப்பி தொடர்பு
கொள்கின்றது.ஒவ்வொரு ஆப்ஜெக்ட்ஸும் தவகல்களையும் அதை கையாளுவதற்குண்டான நிரலாக்க வரிகளையும்
கொண்டுள்ளது.ஆப்ஜெக்ட்ஸ் ஆனது அதன் தகவகல்களையும்(data) அதன் நிரலாக்க வரிகளையும் அறியாமலே
ஒன்றுக்கொன்று தொடர்பு கொள்ளலாம்.
Classes
நாம்
ஆப்ஜெக்ட்ஸானது டேட்டாவாவயும் அதை கையாளுவதற்கான நிரலாக்க வரிகளையும் கொண்டிருக்கும்
என்று பார்த்தோம்.ஒரு ஆப்ஜெக்டின் டேட்டா மற்றும் நிரலாக்க வரிகள் முழுவதையும்
class-ன் உதவியுடன் user defined டேட்டா டைப் ஆக மாற்றலாம். உண்மையில் ஆப்ஜெக்ட்ஸின்
தரவினமானது class ஆகும்.ஒரு தடவை கிளாஸை உருவாக்கி விட்டால் அதை அடிப்படையாக கொண்டு
எத்தனை ஆப்ஜெக்ட்ஸ் வேண்டுமானாலும் உருவாக்கிக் கொள்ளலாம். கிளாஸ் என்பது ஒரே இனத்தைச்
சேர்ந்த ஆப்ஜெக்ட்ஸின் தொகுப்பு ஆகும். உதாரணத்திற்கு Employees என்கின்ற கிளாஸ் ஆனது
ஒட்டு மொத்த ஊழியர்களின் தொகுப்பாகும்.
ஒரு
வேரியபிளை அறிவிப்பதற்கு எந்த syntax பயன் படுத்துகிறோமோ அதே syntax தான் ஆப்ஜெக்ட்களை
அதன் தரவினமாக class-ஐ அறிவிப்பதற்கும் உபயோகிறோம்.
உதாரணம்.
Rose
flower;
Ram
Employee;
Ganesh
student;
மேலே
உள்ள உதாரணங்களை பார்த்தால் rose என்பது flower இனத்தைச் சார்ந்ததாக அறிவிக்கப்பட்டிருக்கிறது.
ஆதே போல் Ram என்பவர் Employee என்கின்ற இனத்தை சார்ந்தவராகவும் Ganesh என்பவர்
student என்கின்ற இனத்தைச் சார்ந்தவராகவும் அறிவிக்கப் பட்டுள்ளது.
Data
Abstraction(தரபு அருவம்) மற்றும் Encapsulation(உறைபொதியாக்கம்)
டேட்டா
மற்றும் ஃபங்சங்களை ஒரே single unit ஆக wrapup செய்வதே Encapsulation ஆகும். Data
Encapsulation என்பது கிளாஸின் முக்கியமான தன்மைகளில் ஒன்றாகும். டேட்டாவை கிளாஸின்
உறுப்பினர் செயல் கூறுகள் (member functions) அணுக முடியுமே தவிர கிளாஸின் வெளியே அதை
அணுக முடியாது.இந்த செயற்கூறுகள்(functions) ஆனது டேட்டா மற்றும் நிரல்களுக்கிடையான
Inter face ஆக செயற்படுகின்றது.இவ்வாறு டேட்டாவை நிரலாக்கத்தில் நேரடியாக அணுக முடியாமல்
செய்வது data hiding அல்லது information
hiding எனப்படுகின்றது.
Abstaction
என்பது ஆப்ஜெக்டின் பின்னனி தகவல்களை சேர்க்காமல் தேவையான தகவல்களை கொண்டிருத்தல் ஆகும்.கிளாஸ்
ஆனது ஆப்ஜெக்டின் size,weight மற்றும் cost
போன்ற டேட்டாவையும் அதை கையாளுவதற்கான செயற்கூறுகளையும் உபயோகப் படுத்தி
abstraction என்கின்ற தன்மையை அமுல்படுத்துகின்றது. அவை ஆப்ஜெக்ட்ஸின் முக்கியமான தன்மைகளை(properties)
encapsulate செய்கின்றது. இந்த தன்மைகளாது டேட்டா மெம்பர்ஸ் எனப்படுகின்றது,ஏனென்றால்
அவை தகவல்களைக் கொண்டிருக்கின்றது.இந்த டேட்டாவை இயக்கும் செயற்கூறுகள் member
functions எனப்படுகின்றது. இவ்வாறு க்ளாஸ்கள் data abstraction என்கின்ற அமைப்பை உபயோகப்படுத்தவதால்
அவை Abstract data type எனப்படுகின்றது.
Inheritance(மரபுரிமம்)
இதன்படி
ஒரு கிளாஸ் ஆனது மற்றொரு கிளாஸை நீட்டுவிக்க்கின்றது (Extension).ஒரு கிளாஸின் ஆப்ஜெக்ட்கள்
மற்றொரு கிளாஸின் properties –யை பெருகின்றது. உதாரணமாக manager கிளாஸின் ஆனது
employee கிளாஸின் ப்ரொபர்டிஸ் கொண்டிருக்கும். Manager கிளாஸை முற்றிலுமாக புதிதாக
எழுதாமல் employee கிளாஸை inherit செய்து கூடுதல் ப்ராப்பர்டிஸ் மற்றும் மெதட்களை மற்றும்
சேர்த்துக் கொள்கின்றது.இது பொருள் நோக்கு நிரலாக்கத்தின் (object oriented
programming) முக்கியக் கருத்துரு ஆன reusability என்பதை செயலாக்குகின்றது.நீட்டுவிக்கப்பட்ட
கிளாஸ் ஆனது இரண்டு கிளாஸ்களின் தன்மையையும் கொண்டிருக்கும்.
பல்லுருவாக்கம்(POLYMORPHISM)
பல்லுருவாக்கம் எனப்படுவது ஒரே பொருள் வெவ்வேறு சூழ்நிலைகளில் வெவ்வேறு வடிவங்கள் எடுப்பதை குறிக்கப் பயன்படுகின்றது. poly என்கின்ற வார்த்தைக்கு many என்றும் morphs என்கின்ற வார்த்தைக்கு forms என்றும் கிரேக்க மொழியில் அறியப்படுகின்றது. ஆங்கிலத்தில் polymorphism என்றால் many forms என்று அறியப்படுகின்றது. polymorphism என்பது இருவேறு முறைகளில் அமுல்படுத்தப்படுகின்றது.
1. compile time
polymorphism (நிரல் பெயர்க்கும் பொழுது நடைபெறுவது)
2. Run time polymorphism. (இயக்க நேரத்தில் நடைபெறுவது)
Compile
time polymorphism என்பதற்கு உதாரணம் மெதொட் ஒவெர்லோடிங்க் மற்றும் ஆபரேட்டர் ஓவர்லோடிங்
ஆகும். Runtime polymorphism என்பதற்கு உதாரணம் method overriding ஆகும்.
செய்தி
அனுப்புதல்.
பொருள்
நோக்கு நிரலாக்கமானது ஒன்றுக்கொன்று communicate செய்து கொள்ளும் ஆப்ஜெக்ட்களின் தொகுப்பாகும்.object
oriented programming என்பதில் மூன்று நிலைகள் உள்ளன.
1.கிளாஸ்
உருவாக்குதல்
2.ஆப்ஜெக்ட்உருவாகுதல்.
3.ஆப்ஜெக்ட்டுகளுக்கிடையே
ஒன்றுக்கொன்று தொடர்பு கொள்ளச் செய்தல்.
செய்தி
அனுப்புதல் என்பது ஆப்ஜெக்ட்டுகளின் பெயர் , மெதட்டின் பெயர் மற்றும் அனுப்பப்பட வேண்டிய
தகவல் ஆகியவற்றைக் கொண்டிருக்கும்.
பொருள்
நோக்கு நிரலாக்கத்தின் நன்மைகள்.
1. இன்ஹெரிடன்ஸ் மூலம் கோட் reusability நடக்கின்றது.
2. Modularity மூலம் code complexity நீங்குகின்றது.
3. சிறிய நிரல்களிருந்து பெரிய நிரல்களாக எளிதாக
upgrade செய்யலாம்.
4. ஒரே ஆப்ஜெக்டின் multiple instance உருவாக்கி
அவை ஒன்றுக்கொன்று தடங்களின்றி தொடர்பு கொள்ள முடிகின்றது.
பொருள்
நோக்கு நிரலாக்க பயன்பாடுகள்:
1. ரியல் டைம் சிஸ்டம்
2. simulation மற்றும் modeling
3. பொருள் நோக்கு நிரலாக்க தரவு தளங்கள்
4. செயற்கை நுண்ணறிவு கருவிகள்
5. cim/cam/cad systems
இவையே object oriented programming என்பதின்
அடிப்படைகள் ஆகும்.
-----முத்து கார்த்திகேயன்,மதுரை.