Difference between revisions of "Java/C3/Polymorphism/Tamil"

From Script | Spoken-Tutorial
Jump to: navigation, search
 
Line 11: Line 11:
 
| இந்த tutorialஇல், நாம் கற்கப் போவது
 
| இந்த tutorialஇல், நாம் கற்கப் போவது
 
   
 
   
* Javaவில் '''Polymorphism'''
+
Javaவில் '''Polymorphism'''
  
* '''Run-time polymorphism'''
+
'''Run-time polymorphism'''
  
* '''Virtual Method Invocation''' மற்றும்
+
'''Virtual Method Invocation''' மற்றும்
  
* '''Compile-time polymorphism'''.
+
'''Compile-time polymorphism'''.
  
 
|-
 
|-
Line 23: Line 23:
 
| இதற்கு நான் பயன்படுத்தியிருப்பது:   
 
| இதற்கு நான் பயன்படுத்தியிருப்பது:   
 
   
 
   
* '''Ubuntu Linux Version 12.04'''
+
'''Ubuntu Linux Version 12.04'''
  
* '''JDK Version 1.7''' மற்றும்
+
'''JDK Version 1.7''' மற்றும்
  
* '''Eclipse 4.3.1'''  
+
'''Eclipse 4.3.1'''  
  
 
|-
 
|-
Line 183: Line 183:
 
| 05:04
 
| 05:04
 
| Javaவில் எந்த ஒரு objectஉம், அதனுடைய வகைப்பாட்டிற்கும் மற்றும்  class Objectக்குமான '''IS-A '''testஐ கடந்து விடும் என்பதால், அனைத்து objectகளுமே polymorphic ஆகிறது
 
| Javaவில் எந்த ஒரு objectஉம், அதனுடைய வகைப்பாட்டிற்கும் மற்றும்  class Objectக்குமான '''IS-A '''testஐ கடந்து விடும் என்பதால், அனைத்து objectகளுமே polymorphic ஆகிறது
 
  
 
|-
 
|-
Line 356: Line 355:
 
|-
 
|-
 
| 10:11
 
| 10:11
| இந்த tutorialஇல், நாம் கற்றது:  
+
| இந்த tutorialஇல், நாம் கற்றது: Javaவில் '''Polymorphism''' என்றால் என்ன?
* Javaவில் '''Polymorphism''' என்றால் என்ன?
+
  
* '''Run-time polymorphism'''
+
'''Run-time polymorphism'''
  
* '''Virtual Method Invocation''' மற்றும்
+
'''Virtual Method Invocation''' மற்றும்
  
* '''Compile-time polymorphism'''.
+
'''Compile-time polymorphism'''.
  
 
|-
 
|-

Latest revision as of 13:02, 8 December 2017

Time Narration
00:01 வணக்கம். Javaவில் Polymorphism குறித்த spoken-tutorialக்கு நல்வரவு.
00:06 இந்த tutorialஇல், நாம் கற்கப் போவது

Javaவில் Polymorphism

Run-time polymorphism

Virtual Method Invocation மற்றும்

Compile-time polymorphism.

00:19 இதற்கு நான் பயன்படுத்தியிருப்பது:

Ubuntu Linux Version 12.04

JDK Version 1.7 மற்றும்

Eclipse 4.3.1

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 செயல் விளக்கத்திற்காக, departmentITஎன வைத்துக் கொள்ளலாம்.
07:17 எனவே Manager classக்கு சென்று, departmentக்கு மதிப்பை initialize செய்யலாம்
07:25 Programஐ Save செய்து Run செய்யலாம் .
07:28 Employee object, Employee classஐ refer செய்கிறது
07:34 Manager object, Employee classஐ refer செய்கிறது & Manager object, Manager classஐ refer செய்கிறது என்பது 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இல், நாம் கற்றது: Javaவில் Polymorphism என்றால் என்ன?

Run-time polymorphism

Virtual Method Invocation மற்றும்

Compile-time polymorphism.

10:23 ஒரு பயிற்சியாக,

முந்தைய tutorialகளில் பயன்படுத்திய Vehicle மற்றும் Bike classக்கான methodகளை override செய்யவும்.

10:32 கீழே காணும் தொடுப்பின் மூலம், Spoken Tutorial திட்டம் குறித்து சுருக்கமாக தெரிந்து கொள்ளலாம். கண்டு பயன்பெறுங்கள்.
10:40 Spoken Tutorial திட்டக்குழு,

Spoken tutorial களை பயன்படுத்தி செய்முறை வகுப்புகள் நடத்துகிறது; இணையத்தில் பரிட்சை எழுதி தேர்வோருக்கு சான்றிதழ்களும் தருகிறது

மேலும் அறிய mail எழுதவும்

10:51 இந்திய அரசு துவக்கிய MHRD இன் ஐசிடி மூலம் தேசிய கல்வித் திட்டம், Spoken Tutorial திட்டத்திற்கு ஆதரவு தருகிறது. மேலும் இந்த திட்டம் பற்றி அறிய, கீழே உள்ள தொடுப்பினைக் காணவும்.
11:03 இந்த tutorial இத்துடன் நிறைவடைகிறது. இந்த டுடோரியலை தமிழாக்கம் செய்தது ஐஸ்வர்யா, குரல் கொடுத்தது IIT Bombayஇல் இருந்து சண்முகப் பிரியா, நன்றி .

Contributors and Content Editors

Aishwarya raman, PoojaMoolya, Priyacst, Venuspriya