Java/C3/Polymorphism/Tamil
Time | Narration |
00:01 | வணக்கம். Javaவில் Polymorphism குறித்த spoken-tutorialக்கு நல்வரவு. |
00:06 | இந்த tutorialஇல், நாம் கற்கப் போவது
|
00:19 | இதற்கு நான் பயன்படுத்தியிருப்பது:
|
00:31 | இந்த tutorialஐ தொடர Java மற்றும் Eclipse IDE தெரிந்திருக்க வேண்டும் |
00:37 | மேலும் Subclassing, Method overriding மற்றும் overloading ஆகியவை அறிந்திருக்க வேண்டும். |
00:43 | தெரியாவிட்டால், அதற்கான Java tutorials ஐ, எங்கள் வலைதளத்தில் காணவும் |
00:48 | ஒரு object வெவ்வேறு வடிவங்களுக்கு மாறிக் கொள்ளும் திறனே, Polymorphism ஆகும். |
00:54 | Polymorphism இன் முக்கிய நன்மைகள்:
1. கடினமானவற்றை எளிமையாக்குவது & 2. Codeஇனை மீண்டும் பயன்படுத்த வழிசெய்வது |
01:03 | Javaவில், polymorphism இரண்டு வகைகள்: Compile-time மற்றும் Run-time polymorphism. |
01:11 | Compile-time polymorphism அடிப்படையில் Method overloading என்றும் Static Binding எனவும் அழைக்கப்படுகிறது. |
01:20 | Run-time polymorphism, அடிப்படையில் Method overriding என்றும் Dynamic Binding எனவும் அழைக்கப்படுகிறது. |
01:29 | நாம் ஏற்கனவே Method overriding வாயிலாக Run-time polymorphism ஐ கற்றுள்ளோம் |
01:35 | இப்போது Eclipse IDE க்கு செல்லலாம். முந்தைய tutorialஇல் MyProject என்ற பெயரில் ஒரு projectஐ உருவாக்கி இருக்கிறேன். |
01:44 | Using final keyword tutorialஇன் code fileகளை எடுத்துக் கொள்ளலாம் |
01:49 | Employee class என்பது parent class ஆகும். |
01:52 | Manager class என்பது subclass ஆகும். |
01:55 | Manager class கூடுதலாக department எனும் variableஐக் கொண்டுள்ளது |
02:01 | Employee class இல் உள்ள getDetails method ஐ, Manager class method getDetails override செய்கிறது. |
02:08 | நாம் Manager classஇன் object ஆன Managerஐக் கொண்டு, getDetails() methodஐ அழைக்கிறோம். |
02:16 | விவரங்களை print செய்ய, type செய்க: system.out.println Details of Manager Class. |
02:28 | Programஐ Save செய்து runசெய்யவும். நாம் இப்போது department variableஇன் மதிப்பை outputஇல் காணலாம். |
02:37 | எனவே subclass method , runtimeஇல் அழைக்கப்பட்டு செயலாக்கப்பட்டிருக்கிறது. |
02:42 | Methodஇன் செயலாக்கம் ,JVMஆல் தீர்மானிக்கப்படுகிறது, compilerஆல் அல்ல. |
02:48 | இதனால் இது Runtime polymorphism அல்லது method overriding என அழைக்கப்படுகிறது. |
02:55 | Run time polymorphism என்றால் என்ன என்பதைக் கற்றோம். |
02:58 | இப்போது Virtual Method Invocation ஐ கற்கலாம். |
03:03 | Eclipse IDEயில் Employee class க்கு வரவும். |
03:07 | name variableக்கான static மற்றும் final keywordகளை நீக்கவும் |
03:13 | setNamemethodஐ Uncomment செய்து செயலாக்கம் செய்யவும். |
03:16 | static block இனை நீக்கி, fileஐ Save செய்யவும்.
|
03:21 | TestEmployee classக்கு வரவும். உதாரணமாகக் கொடுத்த மதிப்பினை uncomment செய்து செயலாக்கம் செய்யவும், manager.setName(“Nikkita Dinesh”); |
03:31 | Empolyee classஇல் setName() method ஐ செயலாக்கம் செய்துள்ளதால், இந்த உதாரண மதிப்பளித்தலையும் uncomment செய்து செயலாக்கம் செய்துள்ளோம். |
03:38 | இப்போது, Employee classஇன் குறிப்பிற்காக, Employeeஇன் objectஆன emp1ஐ உதாரணமாக முன்னிறுத்தலாம். |
03:46 | Employee emp1 = new Employee open and close parenthesis semicolon என type செய்க. |
03:57 | Employee classஇன் setEmail மற்றும் setNameற்கு மதிப்பினை initialize செய்யலாம். |
04:03 | type செய்க: emp1.setName("Jayesh"); emp1.setEmail("pqr@gmail.com"); |
04:16 | Employee விவரங்களை print செய்ய, type செய்க: System.out.println("Details of Employee class:" emp1.getDetails()) semicolon |
04:37 | Employee classஇன் குறிப்பிற்காக Manager object ஆன emp2 ஐ உதாரணமாய் முன்னிறுத்தலாம். இதற்கு type செய்க:
Employee emp2 = new Manager open and close parenthesis semicolon |
04:54 | இதனை செய்ய முடிந்ததன் காரணம், எந்த ஒரு Java objectஉம், ஒன்றுக்கு அதிகமான IS-A சோதனையைக் கடந்திருந்தால், அது polymorphic எனப்படுகிறது. |
05:04 | Javaவில் எந்த ஒரு objectஉம், அதனுடைய வகைப்பாட்டிற்கும் மற்றும் class Objectக்குமான IS-A testஐ கடந்து விடும் என்பதால், அனைத்து objectகளுமே polymorphic ஆகிறது
|
05:16 | A Manager IS-A Employee
A Manager IS-A Manager A Manager IS-A Object. |
05:23 | reference variable மூலமாக மட்டுமே object ஐ அணுக முடியும் |
05:29 | emp1, emp2 மற்றும் manager, Reference variables ஆகும் |
05:36 | இங்கு இரண்டு Manager objectsஐ உதாரணமாக்கி முன்னிறுத்தியுள்ளோம்:
ஒன்று Employee classஐக் குறிக்கிறது. மற்றொன்று Manager classஐக் குறிக்கிறது. |
05:47 | emp2 object மூலம் setEmail, setName மற்றும் setDepartment க்கு மதிப்புகளை initialize செய்யலாம். |
05:55 | Type செய்க,
emp2.setName("Ankita"); emp2.setEmail(“xyz@gmail.com”); emp2.setDepartment(“IT”); |
06:14 | "The method setDepartment(String) is undefined for the type Employee" எனும் பிழை காட்டப்படுவதைக் காணலாம் |
06:23 | இது ஏனென்றால், Employee classஇல் setDepartment method இருக்காது . |
06:30 | எனவே: emp2.setDepartment("IT"); என்ற வரியை நீக்கவும். |
06:37 | விவரங்களை print செய்ய, type செய்க: System.out.println("Details of Manager class:" emp2.getDetails()) semicolon |
06:55 | Programஐ Save செய்து Run செய்யவும் . |
06:58 | இங்கு கிடைத்த outputஇல், Manager of: ற்கு பிறகு காலியாக உள்ளது |
07:04 | ஏனென்றால், நாம் emp2 கொண்டு, departmentஐ, Manager classஇல் initialize செய்யவில்லை. |
07:12 | செயல் விளக்கத்திற்காக, department ஐ ITஎன வைத்துக் கொள்ளலாம். |
07:17 | எனவே Manager classக்கு சென்று, departmentக்கு மதிப்பை initialize செய்யலாம் |
07:25 | Programஐ Save செய்து Run செய்யலாம் . |
07:28 | Employee object referring Employee class, |
07:34 | Manager object referring Employee class & Manager object referring Manager class என்பது outputஆகக் கிடைத்துள்ளது |
07:42 | Manager classஇன் getDetails() method, emp2 கொண்டு அழைக்கப்பட்டிருப்பதைக் காணலாம் |
07:49 | ஆனால்emp2 setDepartmentஐ அழைக்க முயன்ற போது, பிழை காண்பிக்கப்ப்பட்டது |
07:54 | காரணம் என்னவென்றால்:
emp2.getDetails() செயல்படும் போது, compiler, getDetails() methodஐ Employee classஇல் காண்கிறது . |
08:05 | எனவே, அது பிழையைக் காண்பிக்காமல், தொகுப்பினை உறுதி செய்கிறது. |
08:10 | எனினும், Manager classஇன் getDetails(), Employee classஇன் getDetails()ஐ override செய்வதால், தொகுப்பு இயங்கும் போது, , Manager classஇன் getDetails()ஐ JVM செயலாக்கம் செய்யும். |
08:24 | எனவே Manager classஇன் getDetails()க்கு தகுந்தவாறு, நமக்கு output கிடைத்துள்ளது. ஆனால் compiler, Employee classஇன் setDepartment methodஐ பார்ப்பதில்லை . |
08:36 | எனவே அது emp2, setDepartmentஐ அழைக்கும் போது, பிழை காண்பிக்கிறது. |
08:43 | இங்கு Employee classற்கு, Employee methodஆன getDetails() செயலாக்கப்படுகிறது., |
08:49 | emp1.getDetails() ஐ இயக்க, compiler Employee classஇன் getDetails()ஐ குறித்துக் கொள்கிறது |
08:57 | தொகுப்பு இயங்கும் போது, , Employee classஇன் getDetails()ஐ JVM செயலாக்கம் செய்கிறது. இதனால், Employee classஇன் getDetails() க்கு தகுந்தவாறு நமக்கு output கிடைக்கிறது. |
09:08 | இவ்வாறு, ஒவ்வொரு variable இலும் குறிப்பிடப்பட்ட object க்கு தகுந்த method ஐ, JVM அழைக்கும். |
09:16 | இவ்வாறான செயல், Virtual Method Invocation என குறிப்பிடப்படுகிறது. |
09:21 | இந்த method கள் Virtual Methodகள் என குறிப்பிடப்படுகின்றன. |
09:26 | Javaவில் அனைத்து methodகளும் இவ்வாறே செயல்படுகின்றன. |
09:31 | Virtual Method Invocation என்றால் என்ன என்பதை கற்றுள்ளோம். |
09:36 | Compile-time polymorphism , அதாவது ‘method overloading’ குறித்து ஏற்கனவே கற்றுள்ளோம். |
09:42 | Compile time polymorphism குறித்து சுருக்கமாகக் காணலாம். |
09:47 | Compile time polymorphismஇல், ஒன்றுக்கு மேற்பட்ட methodஐ, class கொண்டிருக்கலாம் . |
09:53 | methodகள் ஒரே பெயரில், பல்வேறு எண்ணிக்கையில், argumentகளைக் கொண்டிருக்கலாம். |
09:59 | Compiler இயங்கும் போது, methodஇன் அழைப்பினை அது கண்டறிய முடியும். இந்த காரணத்தால், அது compile time polymorphism என அழைக்கப்படுகிறது. |
10:09 | இப்போது சுருக்கமாகப் பார்ப்போம். |
10:11 | இந்த tutorialஇல், நாம் கற்றது:
|
10:23 | ஒரு பயிற்சியாக,
முந்தைய tutorialகளில் பயன்படுத்திய Vehicle மற்றும் Bike classக்கான methodகளை override செய்யவும். |
10:32 | கீழே காணும் தொடுப்பின் மூலம், Spoken Tutorial திட்டம் குறித்து சுருக்கமாக தெரிந்து கொள்ளலாம். கண்டு பயன்பெறுங்கள். |
10:40 | Spoken Tutorial திட்டக்குழு,
Spoken tutorial களை பயன்படுத்தி செய்முறை வகுப்புகள் நடத்துகிறது; இணையத்தில் பரிட்சை எழுதி தேர்வோருக்கு சான்றிதழ்களும் தருகிறது மேலும் அறிய mail எழுதவும் .... contact at spoken hyphen tutorial dot org |
10:51 | இந்திய அரசு துவக்கிய MHRD இன் ஐசிடி மூலம் தேசிய கல்வித் திட்டம், Spoken Tutorial திட்டத்திற்கு ஆதரவு தருகிறது. மேலும் இந்த திட்டம் பற்றி அறிய, கீழே உள்ள தொடுப்பினைக் காணவும். |
11:03 | இந்த tutorial இத்துடன் நிறைவடைகிறது. இந்த டுடோரியலை தமிழாக்கம் செய்து, குரல் கொடுத்தது ஐஸ்வர்யா
நன்றி. |