Java/C3/Polymorphism/Bengali
From Script | Spoken-Tutorial
Time | Narration |
00:01 | Java তে Polymorphism এর টিউটোরিয়ালে আপনাদের স্বাগত। |
00:06 | এখানে আমরা শিখব:
Java তে Polymorphism Run-time polymorphism Virtual Method Invocation এবং Compile-time polymorphism. |
00:19 | এখানে ব্যবহার করছি: উবুন্টু লিনাক্স সংস্করণ 12.04 JDK সংস্করণ 1.7 এবং Eclipse 4.3.1 |
00:31 | টিউটোরিয়ালটি অনুসরণ করতে Java এবং Eclipse IDE এর মৌলিক জ্ঞান থাকতে হবে। |
00:37 | Subclassing, Method overriding এবং overloading সম্পর্কে জ্ঞান থাকতে হবে। |
00:43 | না হলে, প্রাসঙ্গিক Java টিউটোরিয়ালগুলির জন্য, আমাদের ওয়েবসাইটে যান। |
00:48 | Polymorphism একটি অবজেক্টের বিভিন্ন রূপ নেওয়ার ক্ষমতা রাখে। |
00:54 | Polymorphism এর প্রধান সুবিধা হল: Reduction of complexity এবং Code re-usability. |
01:03 | জাভাতে দুটি ধরনের 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 | আমরা ইতিমধ্যে Run-time polymorphism অর্থাৎ Method overriding সম্পর্কে শিখেছি। |
01:35 | Eclipse IDE তে যাই। আমি ইতিমধ্যে পূর্বের টিউটোরিয়ালে MyProject নামে প্রজেক্ট বানিয়েছি। |
01:44 | Using final keyword টিউটোরিয়ালের কোড ফাইল নেই। |
01:49 | Employee ক্লাস হল parent ক্লাস। |
01:52 | Manager ক্লাস হল subclass. |
01:55 | Manager ক্লাসে একটি অতিরিক্ত ভ্যারিয়েবল department রয়েছে। |
02:01 | Manager ক্লাস মেথড getDetails(), Employee ক্লাস মেথড getDetails() কে override করে। |
02:08 | আমরা Manager ক্লাস অবজেক্ট দ্বারা getDetails () মেথড কল করছি অর্থাৎ Manager. |
02:16 | বিবরণ প্রিন্ট করতে লিখুন: system.out.println Details of Manager Class. |
02:28 | প্রোগ্রাম সংরক্ষণ করে রান করুন। আমরা আউটপুটে department ভ্যারিয়েবল ভ্যালু দেখি। |
02:37 | তাই subclass মেথডকে runtime এ প্রয়োগ করা হয়। |
02:42 | মেথড invocation JVM দ্বারা নির্ধারণ করা হয়, কম্পাইলার দ্বারা নয়। |
02:48 | তাই এটি Runtime polymorphism বা method overriding হিসাবে পরিচিত। |
02:55 | আমরা Run time polymorphism শিখেছি। |
02:58 | এখন Virtual Method Invocation শিখি। |
03:03 | Eclipse IDE তে Employee ক্লাসে আসুন। |
03:07 | ভ্যারিয়েবল name এর জন্য static এবং final কীওয়ার্ড সরান। |
03:13 | মেথড setName আনকমেন্ট করুন। |
03:16 | static ব্লক সরান। ফাইলটি সংরক্ষণ করুন। |
03:21 | TestEmployee ক্লাসে আসুন। ভ্যালু manager.setName(“Nikkita Dinesh”); আনকমেন্ট করুন। |
03:31 | এই উদাহরণ আনকমেন্ট করি কারণ Employee ক্লাসে setName () মেথড আনকমেন্ট করেছি। |
03:38 | এখন, Employee ক্লাসের জন্য Employee অবজেক্ট emp1 দেখাই। |
03:46 | লিখুন: Employee emp1 = new Employee ওপেন এবং ক্লোস প্রথম বন্ধনী সেমিকোলন |
03:57 | এখন Employee ক্লাসে জন্য setEmail এবং setName এর জন্য ভ্যালু ইনিসিয়েলাইজ করুন। |
04:03 | লিখুন: emp1.setName("Jayesh"); emp1.setEmail("pqr@gmail.com"); |
04:16 | employee বিবরণ প্রিন্ট করতে লিখুন: System.out.println("Details of Employee class:" emp1.getDetails()) সেমিকোলন। |
04:37 | Employee ক্লাসের জন্য Manager অবজেক্ট emp2 দেখাই।
লিখুন: Employee emp2 = new Manager ওপেন এবং ক্লোস প্রথম বন্ধনী সেমিকোলন। |
04:54 | আমরা এটি করতে সক্ষম কারণ যে কোনো Java object যা একাধিক IS-A টেস্ট পাস করে হল polymorphic. |
05:04 | জাভাতে সকল অবজেক্ট হল polymorphic, কারণ যে কোনো অবজেক্ট IS-A টেস্ট তাদের নিজস্ব ধরন এবং ক্লাস অবজেক্টের জন্য পাস করবে। |
05:16 | A Manager IS-A Employee
A Manager IS-A Manager A Manager IS-A Object. |
05:23 | reference variable দ্বারা কোনো অবজেক্ট পর্যন্ত পৌঁছনোর শুধুমাত্র একটি সম্ভাব্য উপায় রয়েছে। |
05:29 | Reference variables যেমন emp1, emp2 এবং manager. |
05:36 | এখানে দুটি Manager অবজেক্টের দেখাই:
প্রথমটি যা Employee ক্লাস উল্লেখ করে এবং দ্বিতীয়টি যা Manager ক্লাস উল্লেখ করে। |
05:47 | emp2 অবজেক্ট দ্বারা setEmail, setName এবং setDepartment এর জন্য ভ্যালু ইনিসিয়েলাইজ করি। |
05:55 | লিখুন:
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 | কারণ setDepartment মেথড Employee এর জন্য বিদ্যমান নেই। |
06:30 | এখন emp2.setDepartment("IT"); সরিয়ে দিন |
06:37 | বিবরণ প্রিন্ট করতে লিখুন: System.out.println("Details of Manager class:" emp2.getDetails()) সেমিকোলন। |
06:55 | প্রোগ্রামটি সংরক্ষণ করে রান করুন। |
06:58 | এখানে আউটপুটে, আমরা Manager of: ফাঁকা পাই। |
07:04 | কারণ, আমরা emp2 দ্বারা Manager ক্লাসে department ইনিসিয়েলাইজ করিনি। |
07:12 | ডেমোর উদ্দেশ্যে, ডিফল্ট department হল IT. |
07:17 | Manager ক্লাসে যান এবং department এর জন্য ভ্যালু ইনিসিয়েলাইজ করুন। |
07:25 | প্রোগ্রামটি সংরক্ষণ করে রান করুন। |
07:28 | আউটপুট হল Employee অবজেক্ট Employee ক্লাস উল্লেখ করে। |
07:34 | Manager অবজেক্ট Employee ক্লাস এবং Manager অবজেক্ট Manager ক্লাস |
07:42 | এখানে দেখি যে Manager ক্লাসের getDetails() মেথড emp2 দ্বারা কল হয়। |
07:49 | কিন্তু emp2, setDepartment কল করার চেষ্টা করলে একটি এরর পাই। |
07:54 | এর কারণ নিম্নরূপ:
কম্পাইলার emp2.getDetails() এর সময় Employee ক্লাসে getDetails () মেথড দেখে। |
08:05 | এটি কোনো এরর দেয় না এবং কোডটি যাচাই করে। |
08:10 | run time এ যদিও Manager ক্লাসে JVM, getDetails () লাগু করে কারণ Manager ক্লাসের getDetails (), Employee ক্লাসের getDetails () override করে। |
08:24 | আমরা Manager ক্লাসের getDetails() অনুযায়ী আউটপুট পাই। কিন্তু কম্পাইলার Employee ক্লাসে setDepartment মেথড দেখে না। |
08:36 | তাই, emp2 কল করলে setDepartment একটি এরর দেয়। |
08:43 | Employee মেথড getDetails(), Employee ক্লাসের জন্য লাগু হয়। |
08:49 | কম্পাইলার emp1.getDetails() এর সময় getDetails () এর জন্য Employee ক্লাস উল্লেখ করে। |
08:57 | রান টাইমে JVM, Employee ক্লাসে getDetails () লাগু করে। আমরা Employee ক্লাসের getDetails () অনুযায়ী আউটপুট পাই। |
09:08 | তাই JVM, object এর জন্য উপযুক্ত মেথড কল করে যা প্রতিটি ভ্যারিয়েবলে নির্দিষ্ট করা হয়। |
09:16 | এই ব্যবহার Virtual Method Invocation রূপে উল্লেখ করা হয়। |
09:21 | মেথড Virtual Methods হিসাবে উল্লিখিত। |
09:26 | জাভাতে সকল মেথড এই উপায়ে আচরণ করে। |
09:31 | আমরা সফলভাবে শিখেছি যে Virtual Method Invocation কি। |
09:36 | আমরা ইতিমধ্যে Compile-time polymorphism অর্থাৎ method overloading সম্পর্কে শিখেছি। |
09:42 | সংক্ষেপে দেখি যে Compile time polymorphism কি। |
09:47 | Compile time polymorphism এ, ক্লাসে একাধিক মেথড থাকতে পারে। |
09:53 | মেথডের একই নাম হয় কিন্তু বিভিন্ন আর্গুমেন্ট সহ। |
09:59 | কম্পাইলার কম্পাইল-টাইমে মেথড কল করতে সক্ষম। এটি কারণ যে এটি compile time polymorphism নামে পরিচিত। |
10:09 | সংক্ষেপে, |
10:11 | এখানে আমরা শিখেছি:
Java তে Polymorphism কি? Run-time polymorphism Virtual Method Invocation এবং Compile-time polymorphism. |
10:23 | অনুশীলনী হিসাবে, Vehicle এবং Bike ক্লাসের জন্য আগের টিউটোরিয়ালে ব্যবহার করা মেথড override করুন। |
10:32 | নিম্ন লিঙ্কে উপলব্ধ ভিডিওটি প্রকল্পকে সারসংক্ষেপে বোঝায়। এটি দেখুন। |
10:40 | স্পোকেন টিউটোরিয়াল প্রকল্প দল কর্মশালার আয়োজন করে এবং অনলাইন পরীক্ষা পাস করলে প্রশংসাপত্র দেওয়া হয়। অধিক জানতে আমাদের লিখুন। |
10:51 | স্পোকেন টিউটোরিয়াল প্রকল্প Talk to a Teacher প্রকল্পের অংশবিশেষ। এটি ভারত সরকারের NMEICT, MHRD দ্বারা সমর্থিত। এই বিষয়ে বিস্তারিত তথ্য এই লিঙ্কে প্রাপ্তিসাধ্য। |
11:03 | আই আই টী বোম্বে থেকে আমি বিদায় নিচ্ছি। অংশগ্রহনের জন্যে ধন্যবাদ। |