Java/C3/Subclassing-and-Method-Overriding/Bengali
From Script | Spoken-Tutorial
Revision as of 16:53, 9 November 2017 by Satarupadutta (Talk | contribs)
|
|
00:01 | Subclassing and Method overriding এর টিউটোরিয়াল আপনাদের স্বাগত। |
00:06 | এখানে আমরা শিখব: subclassing , extends কীওয়ার্ড এবং method overriding. |
00:15 | এখানে ব্যবহার করছি: উবুন্টু লিনাক্স সংস্করণ 12.04, JDK 1.7, Eclipse 4.3.1. |
00:25 | টিউটোরিয়ালটি অনুসরণ করতে, Java এবং Eclipse IDE এর মৌলিক জ্ঞান থাকতে হবে। |
00:32 | না হলে, প্রাসঙ্গিক Java টিউটোরিয়ালের জন্য, আমাদের ওয়েবসাইটে যান। |
00:37 | প্রথমে আমরা শিখব যে subclassing কি। |
00:41 | এটি একটি বিদ্যমান class থেকে নতুন class বানানোর উপায়। |
00:46 | নতুন নির্মিত ক্লাস হল subclass বা derived class বা child class. |
00:53 | ইতিমধ্যে বিদ্যমান ক্লাসকে superclass বা base class বা parent class বলে। |
01:00 | এখন, আপনাকে subclass বানানো দেখাই। আমি ইতিমধ্যে MyProject নামে একটি প্রকল্প বানিয়েছি। |
01:10 | আমি এতে Employee নামে একটি ক্লাস বানিয়েছি। |
01:15 | এতে variable, name এবং email_address রয়েছে। |
01:19 | এতে ক্লাসের জন্য setter এবং getter মেথডও রয়েছে। |
01:24 | এতে getDetails() মেথড রয়েছে। এই মেথড name এবং email_address রিটার্ন করে। |
01:31 | এখন, Manager ক্লাসে যাই। |
01:35 | এতে variable, name, email_address এবং department রয়েছে। |
01:40 | আমরা দেখি যে কিছু ভ্যারিয়েবল Employee এবং Manager class উভয়ের জন্য একই। |
01:47 | name এবং email_address, Employee ক্লাসে রয়েছে। আমরা দেখি যে এটি Manager ক্লাসেও রয়েছে। |
01:57 | এইভাবে, Manager ক্লাসকে Employee ক্লাসের subclass বানানো যায়। |
02:03 | এরজন্য, Manager ক্লাসে কিছু পরিবর্তন করতে হবে। |
02:08 | public class Manager এর পর, লিখুন: extends Employee |
02:14 | আমরা বিদ্যমান ক্লাস থেকে subclass বানাতে extends কীওয়ার্ড ব্যবহার করি। |
02:21 | উভয় ক্লাসের অনুরূপ ডুপ্লিকেট ভ্যারিয়েবল সরান। |
02:26 | Manager ক্লাস থেকে name এবং email_address সরান। |
02:32 | এছাড়া setter এবং getter মেথডও মুছে ফেলুন। |
02:37 | Manager ক্লাসে, কেবল একটি department ভ্যারিয়েবল থাকবে। |
02:43 | আমাদের department এর জন্য setter এবং getter মেথডও রয়েছে। |
02:59 | এইভাবে, Manager ক্লাস Employee ক্লাসের সদস্যদের ইনহেরিট করে। |
02:55 | একটি ক্লাসকে অন্য ক্লাসে বিস্তার করার এই পদ্ধতিকে single inheritance বলে। |
03:02 | আমি TestEmployee নামে আরেকটি ক্লাস বানিয়েছি। |
03:08 | Main মেথডে, আমরা Manager ক্লাসের object বানাবো। |
03:14 | তাই, main মেথডে লিখুন : Manager manager equal to new Manager প্রথম বন্ধনী। |
03:23 | আমরা Manager ক্লাসের setter মেথড কল করব। |
03:28 | লিখুন, manager dot setName বন্ধনীতে এবং ডবল উদ্ধৃতিতে Nikkita Dinesh |
03:38 | তারপর লিখুন: manager dot setEmail বন্ধনীতে এবং ডাবল উদ্ধৃতিতে abc at gmail dot com. |
03:49 | তারপর লিখুন, manager dot setDepartment বন্ধনীতে এবং ডাবল উদ্ধৃতিতে Accounts. |
03:57 | আপনি যে কোনো name, email address এবং department ব্যবহার করতে পারেন। |
04:02 | এখন, Manager অবজেক্ট দ্বারা getDetails() মেথড কল করি। |
04:08 | তাই লিখুন: System.out.println বন্ধনীতে manager dot getDetails. |
04:17 | এখন, প্রোগ্রামটি সংরক্ষণ করে রান করি। |
04:21 | আমরা দেখি যে আমরা আউটপুটটি পেয়েছি: Name: Nikkita Dinesh Email: abc@gmail.com |
04:30 | এখানে Manager ক্লাসের অবজেক্ট getDetails () মেথড কল করে। |
04:36 | এখন, Manager ক্লাসে আসুন। |
04:39 | আমরা দেখি যে এখানে getDetails() মেথড নেই। |
04:43 | কিন্তু তবুও আমরা আউটপুট পেয়েছি। এর কারণ হল, Manager ক্লাস Employee ক্লাস প্রসারিত করে। |
04:52 | Manager ক্লাস স্বয়ংক্রিয়ভাবে Employee ক্লাসের ভ্যারিয়েবল্স এবং মেথডস বানায়। |
04:59 | এটি parent ক্লাস যাচাই করে যা হল Employee. |
05:04 | Employee ক্লাসে ফিরে আসি। এটি এখানে getDetails() মেথড পায়। |
05:11 | আমরা department রিটার্ন করিনি। ফলস্বরূপ, এটি আউটপুটে department প্রিন্ট করে না। |
05:20 | getDetails মেথড private এ বদলাই। ফাইলটি সংরক্ষণ করুন। |
05:27 | আমরা দেখি যে আমরা TestEmployee ক্লাসে একটি সংকলন এরর পেয়েছি। |
05:34 | এটি দেখায় যে The method getDetails() from the type Employee is not visible. |
05:40 | এর মানে getDetails () মেথড ব্যবহার করা যাবে না। |
05:45 | এর কারণ হল আমরা getDetails () মেথড private করেছি। |
05:52 | subclass এর superclass এর private সদস্য ইনহেরিট করে না। |
05:58 | Subclass superclass এর private সদস্যদের সরাসরি অ্যাক্সেস করতে পারে না। |
06:04 | superclass public বা protected মেথড হতে পারে। |
06:09 | এই মেথড তাদের private ফীল্ড অ্যাক্সেস করতে পারে। |
06:13 | subclass এই মেথড দ্বারা private ফীল্ডও অ্যাক্সেস করতে পারে। |
06:18 | তাই এটিকে আবার public এ বদলাই। |
06:21 | এখন, Manager ক্লাসে getDetails মেথড অন্তর্ভুক্ত করি। |
06:27 | এই মেথড name, email_address এবং department রিটার্ন করবে। |
06:33 | তাই লিখুন: public String getDetails প্রথম বন্ধনী। |
06:39 | মেথডে লিখুন: return বন্ধনীতে Name প্লাস getName() প্লাস slash n প্লাস Email plus getEmail() প্লাস slash n প্লাস Manager of প্লাস getDepartment() সেমিকোলন। ফাইলটি সংরক্ষণ করুন। |
07:07 | লক্ষ্য করুন, এখন getDetails মেথড Manager এবং Employee উভয় ক্লাসে রয়েছে। |
07:15 | মেথডের name, return type এবং argument list উভয় ক্লাসে একই। |
07:22 | subclass এ মেথড parent ক্লাসে মেথডকে override করতে বলে যদি:
name, return type, argument list একেবারে মেলে। |
07:33 | Manager ক্লাসে ফিরে আসুন। |
07:36 | getDetails () মেথডের আগে লিখুন: @Override |
07:43 | এটি override annotation. এটি নির্দেশ করে মেথড superclass এ মেথড override করতে অভিপ্রেত করা হয়েছে। |
07:53 | এখন, দেখি যে annotation কি। |
07:57 | Annotations: at (@) চিহ্ন দিয়ে শুরু হয়, প্রোগ্রাম সম্পর্কে ডেটা প্রদান করে, কোডের অপারেশনে কোনো সরাসরি প্রভাব নেই। |
08:10 | মেথড @Override সহ annotate হলে, কম্পাইলার এরর উৎপন্ন করে যদি: superclass এ ঘোষিত মেথড override না করে। |
08:23 | method signature তার superclass এ ভিন্ন। |
08:28 | এখন, IDE তে ফিরে আসি। Manager ক্লাসে ফিরে আসুন। |
08:34 | at (@) চিহ্ন ক্যারেক্টার কম্পাইলারকে ইঙ্গিত করে যে annotation এর পর কি হয়। |
08:42 | এখানে, এটি দেখায় যে getDetails() মেথড overridden রয়েছে। |
08:48 | TestEmployee ক্লাসে ফিরে আসুন। |
08:51 | ফাইলটি সংরক্ষণ করে প্রোগ্রামটি রান করুন। |
08:55 | আমরা নিম্ন আউটপুট পাই: Name: Nikkita Dinesh, Email: abc@gmail.com, Manager of Accounts |
09:05 | এখানে, Manager ক্লাসের অবজেক্ট getDetails () মেথড কল করে। |
09:11 | কিন্তু এই সময়, এটি নিজে Manager ক্লাসের মেথড কল করছে। |
09:16 | এইভাবে, আমরা subclass দ্বারা parent ক্লাসের মেথড override করি। |
09:23 | সংক্ষেপে, এখানে আমরা শিখেছি: Subclassing এবং Method Overriding. |
09:31 | অনুশীলনী হিসাবে, Vehicle ক্লাস বানান যাতে run মেথড হোক, যা The Vehicle is running প্রিন্ট করে। |
09:40 | একটি Bike ক্লাসও বানান, যাতে run মেথড হোক যা The Bike is running safely প্রিন্ট করে। |
09:48 | আউটপুট The Bike is running safely হওয়া উচিত। |
09:52 | স্পোকেন টিউটোরিয়াল প্রকল্প সম্পর্কে অধিক জানতে, এই লিঙ্কে উপলব্ধ ভিডিওটি দেখুন। এটি প্রকল্পকে সারসংক্ষেপে বোঝায়। ভাল ব্যান্ডউইডথ না থাকলে আপনি ভিডিওটি ডাউনলোড করে দেখতে পারেন। |
10:06 | স্পোকেন টিউটোরিয়াল প্রকল্প দল কর্মশালার আয়োজন করে। অনলাইন পরীক্ষা পাস করলে প্রশংসাপত্র দেওয়া হয়। এই বিষয়ে বিস্তারিত তথ্যের জন্য contact@spoken-tutorial.org তে ইমেল করুন। |
10:21 | স্পোকেন টিউটোরিয়াল Talk to a Teacher প্রকল্পের অংশবিশেষ। এটি ভারত সরকারের ICT, MHRD এর জাতীয় শিক্ষা মিশন দ্বারা সমর্থিত। এই বিষয়ে বিস্তারিত তথ্য এই লিঙ্কে প্রাপ্তিসাধ্য, |
10:42 | আই আই টী বোম্বে থেকে আমি বিদায় নিচ্ছি। অংশগ্রহনের জন্যে ধন্যবাদ। |