Difference between revisions of "Ruby/C3/Object-Oriented-Concept-in-Ruby/Bengali"

From Script | Spoken-Tutorial
Jump to: navigation, search
Line 9: Line 9:
 
|-
 
|-
 
| 00:06
 
| 00:06
| এই টিউটোরিয়ালে আমরা ব্যবহার করা শিখব -
+
| এখানে শিখব -
  
 
|-
 
|-
Line 21: Line 21:
 
|-
 
|-
 
| 00:10
 
| 00:10
|'''Ruby''' তে '''methods''' সংজ্ঞায়িত করার বিভিন্ন উপায়।  
+
| '''methods''' সংজ্ঞায়িত করার বিভিন্ন উপায়।  
  
 
|-
 
|-
 
|  00:13
 
|  00:13
|এখানে আমরা
+
|এখানে
  
 
|-
 
|-
 
|  00:14
 
|  00:14
|  উবুন্টু লিনাক্স সংস্করণ '''12.04''',
+
|  উবুন্টু সংস্করণ '''12.04''' এবং
  
 
|-
 
|-
Line 37: Line 37:
 
|-
 
|-
 
| 00:19
 
| 00:19
|টিউটোরিয়ালটি অনুসরণ করতে লিনাক্স কমান্ড, টার্মিনাল এবং টেক্সট এডিটর ব্যবহার সম্পর্কে জানতে হবে।
+
| লিনাক্স কমান্ড, টার্মিনাল এবং টেক্সট এডিটর ব্যবহার সম্পর্কে জানতে হবে।
 
    
 
    
 
|-
 
|-
Line 49: Line 49:
 
|-
 
|-
 
| 00:33
 
| 00:33
|সেই ডিরেক্টরিতে যাই।
+
| এই ডিরেক্টরিতে যাই।
  
 
|-
 
|-
Line 61: Line 61:
 
|-
 
|-
 
| 00:44
 
| 00:44
| '''Ruby''' তে ভ্যালু থেকে '''string''' বা নম্বর পর্যন্ত, সব কিছু একটি অবজেক্ট।
+
| এখানে ভ্যালু থেকে '''string''' বা নম্বর পর্যন্ত, সবই অবজেক্ট।
  
 
|-
 
|-
 
| 00:49
 
| 00:49
|একটি '''Class''', সম্বন্ধিত '''data''' এবং '''functions''' এর একটি সংগ্রহ।
+
| '''Class''' হল সম্বন্ধিত '''data''' বা '''functions''' এর সংগ্রহ।
  
 
|-
 
|-
 
|  00:53
 
|  00:53
|এটি সংগঠিত ডেটা রাখতে দরকার হতে পারে।
+
|এটি সংগঠিত ডেটা রাখে।
  
 
|-
 
|-
 
| 00:56
 
| 00:56
|একটি '''Object''' হল '''Class''' এর ইনস্ট্যান্স।
+
| '''Object''' হল '''Class''' এর ইনস্ট্যান্স।
 
   
 
   
 
|-
 
|-
Line 89: Line 89:
 
|-
 
|-
 
| 01:11
 
| 01:11
|এখন '''Class''' একটি উদাহরণ দেখি।
+
|এখন '''Class''' এর একটি উদাহরণ দেখি।
 
   
 
   
 
|-
 
|-
 
| 01:14
 
| 01:14
|''' class Product'''
+
| ক্লাস '''Product'''
  
 
|-
 
|-
Line 105: Line 105:
 
|-
 
|-
 
|  01:20
 
|  01:20
| '''Class''' এর নাম বড়হাতের অক্ষর দ্বারা শুরু হতে হবে।
+
| '''Class''' এর নাম বড়হাতের অক্ষর দ্বারা শুরু হয়।
  
 
|-
 
|-
Line 125: Line 125:
 
|-
 
|-
 
| 01:34
 
| 01:34
|পরবর্তী ফাইলের নামের শব্দগুলি পৃথক করতে আন্ডারস্কোর ব্যবহার করা।
+
| এর পরের ক্ষেত্রে আন্ডারস্কোর ব্যবহার করব।
 
|-
 
|-
 
| 01:37
 
| 01:37
Line 136: Line 136:
 
|-
 
|-
 
|  01:45
 
|  01:45
| '''gedit''' এ একটি নতুন ফাইল তৈরি করুন।
+
| '''gedit''' এ নতুন ফাইল তৈরি করে
  
 
|-
 
|-
Line 152: Line 152:
 
|-
 
|-
 
|  02:02
 
|  02:02
| আমি এই উদাহরণে '''Order''' নামক '''Class''' সংজ্ঞায়িত করেছি।
+
| '''Order''' নামক '''Class''' সংজ্ঞায়িত করেছি।
  
 
|-
 
|-
Line 160: Line 160:
 
|-
 
|-
 
| 02:11
 
| 02:11
|তারপর একটি '''instance''' ভ্যারিয়েবল, '''myinstance''' সংজ্ঞায়িত করেছি
+
| '''instance''' ভ্যারিয়েবল, '''myinstance''' সংজ্ঞায়িত করেছি
  
 
|-
 
|-
 
|  02:15
 
|  02:15
|এবং এতে একটি ভ্যালু নির্ধারিত করেছি।
+
|এবং এতে ভ্যালু নির্ধারিত করেছি।
  
 
|-
 
|-
 
|  02:18
 
|  02:18
|আমি একটি '''Class''' ভ্যারিয়েবল '''myclassvar''' ও সংজ্ঞায়িত করেছি
+
| '''Class''' ভ্যারিয়েবল '''myclassvar''' ও সংজ্ঞায়িত করে
  
 
|-
 
|-
 
|  02:21
 
|  02:21
|এবং এতে একটি ভ্যালু নির্ধারিত করেছি।
+
| এতে ভ্যালু নির্ধারিত করেছি।
  
 
|-
 
|-
 
| 02:24
 
| 02:24
|এখন, '''Class''' ব্যবহার করতে কিছু কোড যোগ করি।
+
|এখন, '''Class''' ব্যবহার করতে এখানে কিছু কোড যোগ করি।
  
 
|-
 
|-
Line 184: Line 184:
 
|-
 
|-
 
| 02:36
 
| 02:36
| এই লাইনের পূর্বে, একটি নতুন লাইনের জন্য '''puts''' কিছু অক্ষর স্ল্যাশ '''n''' যোগ করুন।  
+
| এই লাইনের পূর্বে, নতুন লাইনের জন্য '''puts''' কিছু অক্ষর এবং স্ল্যাশ '''n''' যোগ করুন।  
  
 
|-
 
|-
 
| 02:43
 
| 02:43
| এগুলি কপি, পেস্ট করুন এবং জুড়িত লাইনের নীচে এটি যোগ করে এটি সংরক্ষণ করুন।
+
| এটি কপি পেস্ট করে জুড়িত লাইনের নীচে এটি যোগ করে এটি সংরক্ষণ করুন।
  
 
|-
 
|-
 
| 02:51
 
| 02:51
| এখন এই কোড এক্সিকিউট করি।
+
| কোড এক্সিকিউট করি।
  
 
|-
 
|-
Line 220: Line 220:
 
|-
 
|-
 
| 03:21
 
| 03:21
| এখন টার্মিনালে যান এবং আগের মতই ফাইল এক্সিকিউট করুন।  
+
| এখন টার্মিনালে গিয়ে আগের মতই ফাইল এক্সিকিউট করুন।  
  
 
|-
 
|-
Line 227: Line 227:
 
|-
 
|-
 
|  03:32
 
|  03:32
| এখন আপনি আপনার '''Class''' লিখতে সক্ষম।
+
| এখন '''Class''' লিখতে সক্ষম।
  
 
|-
 
|-
Line 235: Line 235:
 
|-
 
|-
 
|  03:40
 
|  03:40
|একটি '''Object''' হল ক্লাসের ইনস্ট্যান্স।
+
| এটি হল ক্লাসের ইনস্ট্যান্স।
  
 
|-
 
|-
 
|  03:43
 
|  03:43
| যার অর্থ '''Object''', '''Class''' থেকে তৈরী হয়।  
+
| এর মানে এটি '''Class''' থেকে তৈরী হয়।  
  
 
|-
 
|-
Line 247: Line 247:
 
|-
 
|-
 
|  03:52
 
|  03:52
| আপনি অবজেক্ট কিভাবে ঘোষিত করেন।
+
| অবজেক্ট ঘোষিত করতে
  
 
|-
 
|-
 
|  03:54
 
|  03:54
|আমরা, একটি নতুন কীওয়ার্ড ব্যবহার করে '''Class''' এর '''Object''' ঘোষিত করি।
+
| নতুন কীওয়ার্ড ব্যবহার করে '''Class''' এবং '''Object''' ঘোষিত করি।
 
    
 
    
 
|-
 
|-
 
| 03:58
 
| 03:58
|এখানে আমরা '''Product''' ক্লাসের অবজেক্ট ঘোষিত করছি।
+
| '''Product''' ক্লাসের অবজেক্ট তৈরী করছি।
  
 
|-
 
|-
Line 267: Line 267:
 
|-
 
|-
 
| 04:09
 
| 04:09
| এই প্রক্রিয়াকে অবজেক্টের প্রারম্ভিকরণ বলে।  
+
| একে অবজেক্টের প্রারম্ভিকরণ বলে।  
  
 
|-
 
|-
 
| 04:12
 
| 04:12
|এটি অবজেক্ট '''Product''' এর ধরন।
+
|এটি হল অবজেক্ট '''Product''' এর ধরন।
  
 
|-
 
|-
Line 283: Line 283:
 
|-
 
|-
 
|  04:26
 
|  04:26
| '''Object''' এ '''new''' কল করতে '''initialize''' মেথড ব্যবহার করি।
+
| '''Object''' এ '''new''' কল করতে এই মেথড ব্যবহার করি।
  
 
|-
 
|-
Line 295: Line 295:
 
|-
 
|-
 
| 04:43
 
| 04:43
|একটি উদাহরণ দেখি।
+
| এখন একটি উদাহরণ দেখি।
  
 
|-
 
|-
 
| 04:46
 
| 04:46
|'''gedit''' এ একটি নতুন ফাইল তৈরি করুন
+
|'''gedit''' এ নতুন ফাইল তৈরি করুন
  
 
|-
 
|-
 
| 04:50
 
| 04:50
| এবং এটিকে '''object''' আন্ডারস্কোর '''initialize''' ডট '''rb''' নাম দিন।
+
| এটিকে '''object''' আন্ডারস্কোর '''initialize''' ডট '''rb''' নাম দিন।  
 
+
 
|-
 
|-
 
| 04:55
 
| 04:55
| আমার কাছে '''object initialization''' কোডের একটি কার্যকর উদাহরণ রয়েছে।
+
| এখানে '''object initialization''' কোডের একটি কার্যকর উদাহরণ রয়েছে।
  
 
|-
 
|-
 
| 05:00
 
| 05:00
| এখন টিউটোরিয়ালটি সম্পূর্ণ বুঝতে এটি মাঝে থামিয়ে কোড লিখুন।  
+
| মাঝে টিউটোরিয়াল থামিয়ে কোড লিখুন।  
  
 
|-
 
|-
 
| 05:04
 
| 05:04
|আমি এখানে একটি '''Order''' নামক '''Class''' সংজ্ঞায়িত করেছি।
+
| '''Order''' নামক '''Class''' সংজ্ঞায়িত করেছি।
  
 
|-
 
|-
 
| 05:08
 
| 05:08
|তারপর আমি আর্গুমেন্ট ছাড়া '''initialize''' মেথড সংজ্ঞায়িত করেছি।
+
| এখন আর্গুমেন্ট ছাড়া '''initialize''' মেথড সংজ্ঞায়িত করেছি।
  
 
|-
 
|-
 
| 05:13
 
| 05:13
| আমি একটি '''puts''' মেথড সংজ্ঞায়িত করেছি, একটি ম্যাসেজ প্রদর্শিত হয়,  '''I have created an object'''.
+
| '''puts''' মেথড সংজ্ঞায়িত করেছি, প্রদর্শিত ম্যাসেজ হল,  '''I have created an object'''.
  
 
|-
 
|-
 
| 05:20
 
| 05:20
|এরপর, আমি '''Order''' ডট '''new''' সংজ্ঞায়িত করেছি।
+
|এরপর,'''Order''' ডট '''new''' সংজ্ঞায়িত করেছি।
  
 
|-
 
|-
Line 347: Line 346:
 
|-
 
|-
 
|05:39
 
|05:39
|আপনি ম্যাসেজ দেখবেন যে '''I have created an object'''.
+
| প্রদর্শিত ম্যাসেজ হল '''I have created an object'''.
  
 
|-
 
|-
 
| 05:43
 
| 05:43
| এখন '''gedit''' এ ফিরে যান এবং মেথডে একটি আর্গুমেন্ট যোগ করুন।
+
| এখন '''gedit''' এ ফিরে গিয়ে মেথডে আর্গুমেন্ট যোগ করুন।
  
 
|-
 
|-
Line 371: Line 370:
 
|-
 
|-
 
| 06:04
 
| 06:04
|এখানে আমরা '''new''' মেথডে আর্গুমেন্ট দিয়েছি।
+
|এখানে '''new''' মেথডে আর্গুমেন্ট দিয়েছি।
  
 
|-
 
|-
 
|  06:08
 
|  06:08
| এই আর্গুমেন্ট, '''initialize''' মেথডে পাস করা হয়।
+
| এই আর্গুমেন্ট, '''initialize''' মেথডে পাস করা হয়েছে।
 
   
 
   
 
|-
 
|-
Line 387: Line 386:
 
|-
 
|-
 
|  06:20
 
|  06:20
|এবং আউটপুট দেখুন।
+
| আউটপুট দেখুন।
  
 
|-
 
|-
 
| 06:22
 
| 06:22
|আপনি প্রিন্ট করা ম্যাসেজ, '''“I have created an object”''' দেখবেন।
+
| রিন্ট করা ম্যাসেজ হল, '''“I have created an object”''' দেখবেন।
 
   
 
   
 
|-
 
|-
 
| 06:29
 
| 06:29
| এখন, আপনি হয়তো অবজেক্ট প্রারম্ভণের অর্থ বুঝে গেছেন।
+
| এখন, আপনি অবজেক্ট প্রারম্ভিকরণ বুঝেছেন।
  
 
|-
 
|-
 
|  06:33
 
|  06:33
|মনে রাখুন যে, '''Ruby''' তে '''methods''' হল ফাংশন যা '''Class''' প্রদর্শন করে।
+
| '''Ruby''' তে '''methods''' হল ফাংশন যা '''Class''' প্রদর্শন করে।
  
 
|-
 
|-
Line 411: Line 410:
 
|-
 
|-
 
| 06:48
 
| 06:48
|কিছু ক্যারেক্টার, যা মেথডের নামের সাথে সংলগ্ন রয়েছে তা হল:
+
|কিছু ক্যারেক্টার, যা মেথডের নামের সাথে সংলগ্ন থাকে তা হল:
  
 
|-
 
|-
Line 431: Line 430:
 
|-
 
|-
 
| 07:05
 
| 07:05
|এখন '''gedit''' এ একটি নতুন ফাইল তৈরী করুন
+
| '''gedit''' এ নতুন ফাইল তৈরী করে
  
 
|-
 
|-
 
| 07:09
 
| 07:09
|এবং এর নাম দিন '''class''' আন্ডারস্কোর '''methods''' ডট '''rb'''.
+
| এর নাম দিন '''class''' আন্ডারস্কোর '''methods''' ডট '''rb'''.
  
 
|-
 
|-
Line 443: Line 442:
 
|-
 
|-
 
| 07:17
 
| 07:17
|টিউটোরিয়ালটি সম্পূর্ণ বুঝতে মাঝে এটি মাঝে থামিয়ে কোড লিখুন।
+
|টিউটোরিয়ালটি থামিয়ে কোড লিখুন।
  
 
|-
 
|-
 
| 07:21
 
| 07:21
|এখানে আমি '''Animal''' নামক '''Class''' সংজ্ঞায়িত করেছি।
+
| '''Animal''' ক্লাসের পর
  
 
|-
 
|-
 
| 07:23
 
| 07:23
| তারপর আমার কাছে দুটি মেথড রয়েছে, '''breathe''' এবং '''walk'''.
+
| দুটি মেথড রয়েছে, '''breathe''' এবং '''walk'''.
  
 
|-
 
|-
 
| 07:28
 
| 07:28
|এই দুটি মেথড '''def''' এবং '''end''' কীওয়ার্ডের সাথে সংজ্ঞায়িত হয়েছে।  
+
| এটি '''def''' এবং '''end''' কীওয়ার্ডের সাথে সংজ্ঞায়িত হয়েছে।  
  
 
|-
 
|-
 
| 07:32
 
| 07:32
|তারপর আমি অবজেক্ট '''Animal''' আরম্ভ করেছি।
+
|তারপর অবজেক্ট '''Animal''' আরম্ভ করেছি।
  
 
|-
 
|-
 
| 07:36
 
| 07:36
|আমি এটি, ছোট হাতের অক্ষর '''a''' এর সাথে ভ্যারিয়েবল '''animal''' নিযুক্ত করেছি।
+
| ছোট হাতের অক্ষর '''a''' এর সাথে '''animal''' নিযুক্ত করেছি।
  
 
|-
 
|-
Line 475: Line 474:
 
|-
 
|-
 
| 07:51
 
| 07:51
|আবার টার্মিনালে গিয়ে লিখুন,
+
| টার্মিনালে গিয়ে লিখুন,
  
 
|-
 
|-
Line 487: Line 486:
 
|-
 
|-
 
| 08:00
 
| 08:00
|এখানে নিম্নলিখিত লাইন:
+
|এখানে
  
 
|-
 
|-
Line 503: Line 502:
 
|-
 
|-
 
| 08:05
 
| 08:05
|এটি এইজন্য কারণ আপনি দুটি মেথড '''breathe''' এবং '''walk''' ব্যবহার করেছি।
+
| কারণ আমরা দুটি মেথড '''breathe''' এবং '''walk''' ব্যবহার করেছি।
  
 
|-
 
|-
 
| 08:10
 
| 08:10
|আপনার দেখা এই মেথডে সংজ্ঞায়িত '''puts''' স্টেটমেন্ট ফলাফল দেয়।
+
| এই মেথডে সংজ্ঞায়িত '''puts''' স্টেটমেন্ট ফলাফল দেয়।
  
 
|-
 
|-
 
| 08:16
 
| 08:16
|এরপর দেখি যে '''question''' মার্ক দ্বারা মেথড কিভাবে তৈরী করে।
+
| এখন '''question''' মার্ক দ্বারা মেথড তৈরী করা দেখি।
  
 
|-
 
|-
 
| 08:21
 
| 08:21
|'''gedit''' এ একটি নতুন ফাইল তৈরি করুন
+
|'''gedit''' এ নতুন ফাইল তৈরি করে
  
 
|-
 
|-
 
| 08:25
 
| 08:25
|এবং এর নাম দিন '''class''' আন্ডারস্কোর '''methods''' আন্ডারস্কোর '''with''' আন্ডারস্কোর '''trailing''' আন্ডারস্কোর '''characters''' ডট '''rb'''.
+
| এর নাম দিন '''class''' আন্ডারস্কোর '''methods''' আন্ডারস্কোর '''with''' আন্ডারস্কোর '''trailing''' আন্ডারস্কোর '''characters''' ডট '''rb'''.
  
 
|-
 
|-
 
| 08:35
 
| 08:35
|এখানে '''question''' মার্ক কোড সহ '''Class''' মেথডের কার্যকর উদাহরণ রয়েছে।
+
| '''question''' মার্ক কোড সহ '''Class''' মেথডের কার্যকর উদাহরণ রয়েছে।
  
 
|-
 
|-
 
| 08:40
 
| 08:40
|টিউটোরিয়ালটি সম্পূর্ণ বুঝতে এটি মাঝে থামিয়ে কোড লিখুন।
+
|টিউটোরিয়ালটি সম্পূর্ণ বুঝতে এটি মাঝে থামিয়ে কোড দেখুন।
  
 
|-
 
|-
 
| 08:45
 
| 08:45
|এখানে উদাহরণস্বরূপ আমি আগের মত একই '''Class''' নিয়েছি।
+
| আমি আগের মত একই '''Class''' নিয়েছি।
  
 
|-
 
|-
 
| 08:48
 
| 08:48
|এখানে '''breathe''' মেথডের একটি '''question mark (?)''' রয়েছে।
+
|এখানে '''breathe''' মেথডের '''question mark (?)''' রয়েছে যা
  
 
|-
 
|-
 
| 08:52
 
| 08:52
|এইরকম মেথড সাধারণত '''boolean''' ভ্যালু ফেরৎ দিতে উপযোগী।
+
| '''boolean''' ভ্যালু ফেরৎ দিতে উপযোগী।
  
 
|-
 
|-
 
| 08:55
 
| 08:55
|এটি '''Ruby''' এর নেমিং কনভেন্সন (naming convention) ভিত্তিক।
+
| এটি হল '''Ruby''' তে নেমিং কনভেন্সন (naming convention) ভিত্তিক।
  
 
|-
 
|-
Line 559: Line 558:
 
|-
 
|-
 
| 09:22
 
| 09:22
|আপনি আউটপুট '''"true"''' দেখবেন।
+
| প্রদর্শিত আউটপুট হল '''true'''.
  
 
|-
 
|-
 
| 09:26
 
| 09:26
|এরপর, আমরা আরেকটি মেথড '''walk''' পরিভাষিত করি।
+
|এরপর, আরেকটি মেথড '''walk''' পরিভাষিত করি।
  
 
|-
 
|-
Line 575: Line 574:
 
|-
 
|-
 
| 09:41
 
| 09:41
|তারপর এই মেথড এক্সিকিউট করি।
+
|তারপর মেথড এক্সিকিউট করি।
  
 
|-
 
|-
 
| 09:44
 
| 09:44
|টার্মিনাল খুলুন এবং লিখুন,
+
|টার্মিনালে লিখুন,
  
 
|-
 
|-
Line 591: Line 590:
 
|-
 
|-
 
| 09:56
 
| 09:56
|এটি একটি '''undefined method''' এরর দেবে।
+
| এটি '''undefined method''' এরর দেয়।
  
 
|-
 
|-
 
| 09:59
 
| 09:59
|এটি এইজন্য কারণ '''equal to''' চিন্হের ভিন্ন অর্থ রয়েছে।
+
| কারণ '''equal to''' চিন্হের ভিন্ন অর্থ রয়েছে।
  
 
|-
 
|-
 
| 10:03
 
| 10:03
|এটি একটি মেথডের ভ্যালু নির্ধারিত করতে ব্যবহৃত হয়।
+
|এটি মেথডের ভ্যালু নির্ধারিত করতে ব্যবহৃত হয়।
  
 
|-
 
|-
 
| 10:08
 
| 10:08
|সুতরাং, এখন মেথড একটু অন্য ভাবে ব্যবহার করি।
+
| এখন মেথড একটু অন্য ভাবে ব্যবহার করি।
  
 
|-
 
|-
Line 619: Line 618:
 
|-
 
|-
 
| 10:27
 
| 10:27
|আপনি দেখবেন যে '''hops''' শব্দ প্রিন্ট হয়েছে।  
+
| '''hops''' শব্দটি প্রিন্ট হয়েছে।  
  
 
|-
 
|-
Line 647: Line 646:
 
|-
 
|-
 
| 10:52
 
| 10:52
|নির্দেশিত কাজ হল:
+
| এখন
  
 
|-
 
|-
 
| 10:54
 
| 10:54
|একটি '''Class Product''' পরিভাষিত করা।
+
| ক্লাস '''Product''' পরিভাষিত করুন।
  
 
|-
 
|-
 
| 10:56
 
| 10:56
|'''"myvar"''' এর ভ্যালুস এবং '''"myvar"''' এর জন্য নির্ধারিত ভ্যালু প্রাপ্ত করতে মেথড পরিভাষিত করা।
+
|'''"myvar"''' এবং তার জন্য নির্ধারিত ভ্যালু প্রাপ্ত করতে মেথড পরিভাষিত করুন।
  
 
|-
 
|-
 
| 11:01
 
| 11:01
|ভ্যালু নির্ধারিত করতে, '''"="''' চিহ্ন ব্যবহার করে মেথড পরিভাষিত করা।
+
| '''=''' চিহ্ন ব্যবহার করে মেথড পরিভাষিত করুন।
  
 
|-
 
|-
 
|11:05
 
|11:05
|ক্লাসের অবজেক্ট শীঘ্র প্রদর্শন করা এবং উপরোক্ত দুটি মেথড ব্যবহার করে ভ্যালুস নির্ধারিত এবং প্রাপ্ত করা।  
+
| ক্লাসের অবজেক্ট প্রদর্শন করে উপরোক্ত দুটি মেথড ব্যবহার করে ভ্যালুস নির্ধারিত এবং প্রাপ্ত করা।  
  
 
|-
 
|-
Line 707: Line 706:
 
|-
 
|-
 
| 11:56
 
| 11:56
| আমি কৌশিক দত্ত টিউটোরিয়ালটি অনুবাদ করেছি। ধন্যবাদ।
+
| আমি কৌশিক দত্ত এই টিউটোরিয়ালটি অনুবাদ করেছি। অংশগ্রহণের জন্য ধন্যবাদ।

Revision as of 03:27, 19 December 2014

Time Narration
00:01 Ruby তে Object Oriented Concept এর টিউটোরিয়ালে আপনাদের স্বাগত।
00:06 এখানে শিখব -
00:08 ক্লাসেস,
00:09 অবজেক্ট তৈরী করা।
00:10 methods সংজ্ঞায়িত করার বিভিন্ন উপায়।
00:13 এখানে
00:14 উবুন্টু সংস্করণ 12.04 এবং
00:16 রুবি 1.9.3 ব্যবহার করছি।
00:19 লিনাক্স কমান্ড, টার্মিনাল এবং টেক্সট এডিটর ব্যবহার সম্পর্কে জানতে হবে।
00:24 না হলে, প্রাসঙ্গিক টিউটোরিয়ালের জন্য, আমাদের ওয়েবসাইটে যান।
00:28 শুরু করার পূর্বে, ttt ডিরেক্টরি তৈরী করা নিশ্চিত করুন।
00:33 এই ডিরেক্টরিতে যাই।
00:35 ruby হাইফেন tutorial এবং classes ডিরেক্টরি তে।
00:41 Ruby একটি object oriented ভাষা।
00:44 এখানে ভ্যালু থেকে string বা নম্বর পর্যন্ত, সবই অবজেক্ট।
00:49 Class হল সম্বন্ধিত data বা functions এর সংগ্রহ।
00:53 এটি সংগঠিত ডেটা রাখে।
00:56 Object হল Class এর ইনস্ট্যান্স।
01:00 একটি Class এর সংজ্ঞা কীওয়ার্ড Class এর সাথে শুরু হয়।
01:05 এরপর Class এর নাম আসে।
01:08 এটি end এর সাথে সীমাঙ্কিত হয়।
01:11 এখন Class এর একটি উদাহরণ দেখি।
01:14 ক্লাস Product
01:16 ruby code
01:17 end
01:20 Class এর নাম বড়হাতের অক্ষর দ্বারা শুরু হয়।
01:24 নাম, যাতে একাধিক শব্দ রয়েছে, ক্যামেল কেসে (camel case) হতে হবে।
01:28 উদাহরণস্বরূপ,
01:30 UserInformation
01:32 ProductInformation
01:34 এর পরের ক্ষেত্রে আন্ডারস্কোর ব্যবহার করব।
01:37 user underscore information
01:40 product underscore information
01:45 gedit এ নতুন ফাইল তৈরি করে
01:48 এটিকে class_definition.rb নাম দিন।
01:52 এখানে Classes বাস্তবায়ন করার কার্যকর উদাহরণ রয়েছে।
01:57 টিউটোরিয়ালটি সম্পূর্ণ বুঝতে এটি মাঝে থামিয়ে কোড লিখুন।
02:02 Order নামক Class সংজ্ঞায়িত করেছি।
02:05 এখন, কিছু ভ্যারিয়েবল যুক্ত করে Class কার্যকর করি।
02:11 instance ভ্যারিয়েবল, myinstance সংজ্ঞায়িত করেছি
02:15 এবং এতে ভ্যালু নির্ধারিত করেছি।
02:18 Class ভ্যারিয়েবল myclassvar ও সংজ্ঞায়িত করে
02:21 এতে ভ্যালু নির্ধারিত করেছি।
02:24 এখন, Class ব্যবহার করতে এখানে কিছু কোড যোগ করি।
02:30 লিখুন, puts Order ডট instance আন্ডারস্কোর variables.
02:36 এই লাইনের পূর্বে, নতুন লাইনের জন্য puts কিছু অক্ষর এবং স্ল্যাশ n যোগ করুন।
02:43 এটি কপি পেস্ট করে জুড়িত লাইনের নীচে এটি যোগ করে এটি সংরক্ষণ করুন।
02:51 কোড এক্সিকিউট করি।
02:53 টার্মিনালে গিয়ে লিখুন,
02:56 ruby স্পেস class আন্ডারস্কোর definition ডট rb
03:02 এবং আউটপুট দেখুন।
03:05 আপনি, সংজ্ঞায়িত instance ভ্যারিয়েবল দেখবেন।
03:09 এখন লিখুন puts Order ডট class আন্ডারস্কোর variables.
03:15 এই সীমাঙ্কন, লাইনের একেবারে নীচে কপি-পেস্ট করে সংরক্ষণ করুন।
03:21 এখন টার্মিনালে গিয়ে আগের মতই ফাইল এক্সিকিউট করুন।
03:26 আপনি পরিভাষিত, Class ভ্যারিয়েবল দেখবেন, যা প্রদর্শিত হয়।
03:32 এখন Class লিখতে সক্ষম।
03:35 এরপর, দেখি যে অবজেক্ট কি?
03:40 এটি হল ক্লাসের ইনস্ট্যান্স।
03:43 এর মানে এটি Class থেকে তৈরী হয়।
03:46 Object, Class এ সংজ্ঞায়িত বৈশিষ্ট্য এবং মেথড থাকবে।
03:52 অবজেক্ট ঘোষিত করতে
03:54 নতুন কীওয়ার্ড ব্যবহার করে Class এবং Object ঘোষিত করি।
03:58 Product ক্লাসের অবজেক্ট তৈরী করছি।
04:02 এখানে অবজেক্ট তৈরী হয়েছে।
04:05 product = Product.new
04:09 একে অবজেক্টের প্রারম্ভিকরণ বলে।
04:12 এটি হল অবজেক্ট Product এর ধরন।
04:16 এখন দেখি যে initialize মেথড কি?
04:20 initialize মেথড, Object তৈরীর সময় কল করা হয়।
04:26 Objectnew কল করতে এই মেথড ব্যবহার করি।
04:31 initialize মেথডের কাছে প্যারামিটারের তালিকা হতে পারে।
04:37 অন্যান্য Ruby মেথডের মত, এটি "def" কীওয়ার্ড এর পর আসে।
04:43 এখন একটি উদাহরণ দেখি।
04:46 gedit এ নতুন ফাইল তৈরি করুন
04:50 এটিকে object আন্ডারস্কোর initialize ডট rb নাম দিন।
04:55 এখানে object initialization কোডের একটি কার্যকর উদাহরণ রয়েছে।
05:00 মাঝে টিউটোরিয়াল থামিয়ে কোড লিখুন।
05:04 Order নামক Class সংজ্ঞায়িত করেছি।
05:08 এখন আর্গুমেন্ট ছাড়া initialize মেথড সংজ্ঞায়িত করেছি।
05:13 puts মেথড সংজ্ঞায়িত করেছি, প্রদর্শিত ম্যাসেজ হল, I have created an object.
05:20 এরপর,Order ডট new সংজ্ঞায়িত করেছি।
05:24 এটি initialize মেথড কল করবে।
05:27 এখন টার্মিনালে গিয়ে লিখুন,
05:31 ruby স্পেস object আন্ডারস্কোর initialize ডট rb
05:36 এবং আউটপুট দেখুন।
05:39 প্রদর্শিত ম্যাসেজ হল I have created an object.
05:43 এখন gedit এ ফিরে গিয়ে মেথডে আর্গুমেন্ট যোগ করুন।
05:48 এখন puts এ পরিবর্তন করি।
05:51 এটির পাস করা আর্গুমেন্টের ভ্যালু প্রদর্শন করা উচিত।
05:55 এরপর লিখুন,
05:56 Order dot new(“I have created an object”).
06:04 এখানে new মেথডে আর্গুমেন্ট দিয়েছি।
06:08 এই আর্গুমেন্ট, initialize মেথডে পাস করা হয়েছে।
06:13 এখন টার্মিনালে গিয়ে লিখুন,
06:16 ruby স্পেস object আন্ডারস্কোর initialize ডট rb
06:20 আউটপুট দেখুন।
06:22 রিন্ট করা ম্যাসেজ হল, “I have created an object” দেখবেন।
06:29 এখন, আপনি অবজেক্ট প্রারম্ভিকরণ বুঝেছেন।
06:33 Ruby তে methods হল ফাংশন যা Class প্রদর্শন করে।
06:39 Class এ প্রতিটি মেথড def এবং end ব্লকের মধ্যে সংজ্ঞায়িত হয়।
06:45 multiword মেথড নেম, আন্ডারস্কোর দ্বারা পৃথক হয়েছে।
06:48 কিছু ক্যারেক্টার, যা মেথডের নামের সাথে সংলগ্ন থাকে তা হল:
06:54  ? (question-mark)
06:56 = (equal to)
06:58 প্রতিটি ক্যারেক্টার মেথডে কিছু অর্থ যোগ করে।
07:02 এখন কিছু উদাহরণ দেখি।
07:05 gedit এ নতুন ফাইল তৈরী করে
07:09 এর নাম দিন class আন্ডারস্কোর methods ডট rb.
07:14 এখানে Class মেথড কোডের কার্যকর উদাহরণ রয়েছে।
07:17 টিউটোরিয়ালটি থামিয়ে কোড লিখুন।
07:21 Animal ক্লাসের পর
07:23 দুটি মেথড রয়েছে, breathe এবং walk.
07:28 এটি def এবং end কীওয়ার্ডের সাথে সংজ্ঞায়িত হয়েছে।
07:32 তারপর অবজেক্ট Animal আরম্ভ করেছি।
07:36 ছোট হাতের অক্ষর a এর সাথে animal নিযুক্ত করেছি।
07:40 তারপর আমি ক্রমানুসারে breathe এবং walk মেথড ব্যবহার করেছি।
07:48 এখন প্রোগ্রাম এক্সিকিউট করুন।
07:51 টার্মিনালে গিয়ে লিখুন,
07:53 ruby স্পেস class আন্ডারস্কোর methods ডট rb
07:58 এবং আউটপুট দেখুন।
08:00 এখানে
08:02 “ I breathe”
08:03 “ I walk”
08:04 প্রিন্ট হয়েছে।
08:05 কারণ আমরা দুটি মেথড breathe এবং walk ব্যবহার করেছি।
08:10 এই মেথডে সংজ্ঞায়িত puts স্টেটমেন্ট ফলাফল দেয়।
08:16 এখন question মার্ক দ্বারা মেথড তৈরী করা দেখি।
08:21 gedit এ নতুন ফাইল তৈরি করে
08:25 এর নাম দিন class আন্ডারস্কোর methods আন্ডারস্কোর with আন্ডারস্কোর trailing আন্ডারস্কোর characters ডট rb.
08:35 question মার্ক কোড সহ Class মেথডের কার্যকর উদাহরণ রয়েছে।
08:40 টিউটোরিয়ালটি সম্পূর্ণ বুঝতে এটি মাঝে থামিয়ে কোড দেখুন।
08:45 আমি আগের মত একই Class নিয়েছি।
08:48 এখানে breathe মেথডের question mark (?) রয়েছে যা
08:52 boolean ভ্যালু ফেরৎ দিতে উপযোগী।
08:55 এটি হল Ruby তে নেমিং কনভেন্সন (naming convention) ভিত্তিক।
09:00 animal ডট breathe question-mark ঘোষিত করে মেথড উপযোগিত হয়েছে।
09:06 এখন টার্মিনাল খুলে লিখুন,
09:09 ruby স্পেস class আন্ডারস্কোর methods আন্ডারস্কোর with আন্ডারস্কোর trailing আন্ডারস্কোর characters ডট rb এবং আউটপুট দেখুন।
09:22 প্রদর্শিত আউটপুট হল true.
09:26 এরপর, আরেকটি মেথড walk পরিভাষিত করি।
09:30 এর পাশে একটি চিহ্ন যোগ করুন equal to =(value)
09:36 animal ডট walk, কল করে এটি ব্যবহার করুন।
09:41 তারপর মেথড এক্সিকিউট করি।
09:44 টার্মিনালে লিখুন,
09:45 ruby class আন্ডারস্কোর methods আন্ডারস্কোর with আন্ডারস্কোর trailing আন্ডারস্কোর characters ডট rb
09:52 এবং আউটপুট দেখুন।
09:56 এটি undefined method এরর দেয়।
09:59 কারণ equal to চিন্হের ভিন্ন অর্থ রয়েছে।
10:03 এটি মেথডের ভ্যালু নির্ধারিত করতে ব্যবহৃত হয়।
10:08 এখন মেথড একটু অন্য ভাবে ব্যবহার করি।
10:13 লিখুন puts animal ডট walk = “hops”
10:17 এখন আরেক বার চেষ্টা করি।
10:20 টার্মিনালে গিয়ে আগেকার মতই কমান্ড রান করুন এবং আউটপুট দেখুন।
10:27 hops শব্দটি প্রিন্ট হয়েছে।
10:30 এটি প্রদর্শন করে যে মেথডের পরে equal to চিন্হের অর্থ নির্দেশিত কাজ।
10:36 এখন আপনাকে আপনার মেথড লিখতে সক্ষম হতে হবে।
10:42 এই টিউটোরিয়ালে আমরা শিখেছি -
10:44 Classes ঘোষিত করা,
10:46 Class এর অবজেক্ট তৈরী করা।
10:48 Ruby তে methods সংজ্ঞায়িত করার বিভিন্ন উপায়।
10:52 এখন
10:54 ক্লাস Product পরিভাষিত করুন।
10:56 "myvar" এবং তার জন্য নির্ধারিত ভ্যালু প্রাপ্ত করতে মেথড পরিভাষিত করুন।
11:01 = চিহ্ন ব্যবহার করে মেথড পরিভাষিত করুন।
11:05 ক্লাসের অবজেক্ট প্রদর্শন করে উপরোক্ত দুটি মেথড ব্যবহার করে ভ্যালুস নির্ধারিত এবং প্রাপ্ত করা।
11:12 এই লিঙ্কে উপলব্ধ ভিডিওটি দেখুন।
11:14 এটি প্রকল্পকে সারসংক্ষেপে বোঝায়।
11:18 ভাল ব্যান্ডউইডথ না থাকলে ভিডিওটি ডাউনলোড করে দেখুন।
11:22 স্পোকেন টিউটোরিয়াল প্রকল্প দল,
11:24 টিউটোরিয়াল ব্যবহার করে কর্মশালার আয়োজন করে।
11:27 অনলাইন পরীক্ষা পাস করলে প্রশংসাপত্র দেয়।
11:30 বিস্তারিত তথ্যের জন্য contact@spoken-tutorial.org তে ইমেল করুন।
11:36 স্পোকেন টিউটোরিয়াল Talk to a Teacher প্রকল্পের অংশবিশেষ।
11:39 এটি ভারত সরকারের ICT, MHRD এর জাতীয় সাক্ষরতা মিশন দ্বারা সমর্থিত।
11:46 এই বিষয়ে বিস্তারিত তথ্য এই লিঙ্কে প্রাপ্তিসাধ্য, spoken hyphen tutorial dot org slash NMEICT hyphen Intro
11:56 আমি কৌশিক দত্ত এই টিউটোরিয়ালটি অনুবাদ করেছি। অংশগ্রহণের জন্য ধন্যবাদ।

Contributors and Content Editors

Kaushik Datta