Advanced-Cpp/C2/Classes-And-Objects/Malayalam

From Script | Spoken-Tutorial
Revision as of 17:23, 27 February 2017 by Pratik kamble (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Time Narration
00:01 സി++ ലെ ക്ലാസുകളും ഒബ്ജേക്ട്കളും എന്ന സ്പോകെൻ ട്യൂട്ടോറിയലിലേക്ക് സ്വാഗതം.
00:07 ഇവിടെ പഠിക്കുന്നത്.
00:09 ക്ലാസ്സ്‌സ്.
00:11 ഒബ്ജെക്ട്സ്.
00:12 എൻകാപ്സുലേഷൻ ഒപ്പം.
00:14 ഡാറ്റാ ആബ്സ്റ്റ്റാക്ഷൻ.
00:16 ഒരു ഉദാഹരണത്തിൻറെ സഹായത്തോടെ നമുക്ക് ഇത് ചെയ്യാം.
00:20 ഈ ടൂട്ടോറിയൽ റെക്കോഡ് ചെയ്യാൻ ഞാൻ ഉപയോഗിക്കുന്നത്,
00:23 ഉബുണ്ടു OS version 11.10
00:28 g++ കമ്പൈലർ version 4.6.1
00:32 ഇപ്പോൾ ക്ലാസ്സസ് നോക്കാം.
00:36 class എന്ന കീവേഡ് ഉപയോഗിച്ചാണ്‌ ഒരു ക്ലാസ് ഉണ്ടാക്കിയിരിക്കുന്നത്.
00:39 അതിൽ ഡാറ്റയും ഫംഗ്ഷനുകളും അടങ്ങിയിരിക്കുന്നു.
00:42 ക്ലാസ്സ് കോഡ്നേയും ഡാറ്റയേയും ബന്ധിപ്പിക്കുന്നു.
00:45 ക്ലാസ്സ്‌ലെ ഡാറ്റയേയും ഫംഗ്ഷനുകളെയും മെംബേർസ് ഓഫ് ക്ലാസ്സ്‌ എന്ന് വിളിക്കുന്നു.
00:51 ഇനി ഒബ്ജെക്ട്സ് എന്താണെന് നോക്കാം.
00:53 ഒബ്ജെക്ട്സ് എന്നാൽ വെരിയബിൾസ് ആണ്.
00:55 അത് ഒരു ക്ലാസ്സ്‌ൻറെ പകർപ്പാണ്.
00:58 ഓരോ ഒബ്ജെക്ട്സ്ന്നും പ്രോപെര്ടീസ്ഉം ബിഹേവ്യർഉം ഉണ്ട്.
01:01 പ്രോപെര്ടീസ്, ഡാറ്റ എലമൻറ്റ്സിലൂടെ നിർവ്വചിച്ചിരിക്കുന്നു കൂടാതെ,
01:06  മെതഡ്സ് എന്ന് വിളിക്കുന്ന മെംബർ ഫംഗ്ഷൻസ് വഴി ആണ് ബിഹേവ്യർ നിർവചിച്ചിരിക്കുന്നത്.
01:10 ഇനി നമ്മുക്ക് ഒരു ക്ലാസ്സ്‌ൻറെ ഘടന എങ്ങനെയാണ്‌ എന്ന് നോക്കാം.
01:14 ഇവിടെ,  class എന്നത് ഒരു ക്ലാസ് നിർവചിക്കാൻ ഉപയോഗിക്കുന്ന കീവേഡ് ആണ്.
01:18  class name എന്ന് പറയുന്നത് ക്ലാസ്സ്‌ൻറെ പേരാണ് .
01:21 പബ്ലിക്, പ്രൈവറ്റ്, പ്ററ്റെക്റ്റഡ് ഇവ മൂന്നും ആക്സസ് സ്പെസിഫയർസ് ആകുന്നു.
01:26 ഇവിടെ നാം, ഡാറ്റ മെംബേർസ്നേയും മെംബർ ഫംഗ്ഷൻസിനേയും പബ്ലിക്, പ്രൈവറ്റ്, പ്ററ്റെക്റ്റഡ് ആയി നിർവചിച്ചിരിക്കുന്നു.
01:34 ഇങ്ങനെയാണ് നമ്മൾ ഒരു ക്ലാസ്സ്‌ അടക്കുന്നത്.
01:37 ഇനി നമുക്ക് ഒരു ഉദാഹരണം നോക്കാം
01:39 എഡിറ്ററിൽ ഞാൻ മുൻപുതന്നെ എഴുതി വച്ചിട്ടുള കോഡ് ആണ് നമ്മൾ ഇപ്പോൾ കാണുന്നതു.
01:44 നമ്മുടെ ഫയലിൻറെ പേര് class-obj.cpp.
01:50 ഈ ഉദാഹരണത്തിൽ ക്ലാസ് ഉപയോഗിച്ച് ഒരു സമചതുരത്തിന്റെ വിസ്തീർണ്ണം കണക്കുകൂട്ടുന്നു.
01:56 ഞാൻ കോഡ് വിശദീകരിക്കാം.
01:58 iostream എന്നത് ഒരു ഹെഡർ ഫയൽ ആണ്.
02:02 ഇവിടെ നാം STD namespace ഉപയോഗിക്കുന്നു.
02:06 ഇതു square എന്ന  പേരുള്ള ഒരു ക്ലാസ്സിൻറെ ഡിക്ലറേഷൻനാണ്.
02:10 ഇവിടെ ഞാൻ ആക്സസ് സ്പെസിഫയർ ഡിക്ലെർ ചെയ്തട്ടില്ല.
02:14 അതായത് അത് ഡിഫോള്‍ട്ട് ആയി  പ്രൈവറ്റ് ആണ്.
02:17 അതിനാൽ വേരിയബിൾ "X" square ക്ലാസ്ൻറെ പ്രൈവറ്റ് അംഗമാണ്.
02:22 ഇത് ഒരു പബ്ലിക് സ്പെസിഫയർ ആണ്.
02:25 area ഒരു പബ്ലിക്  ഫംഗ്ഷൻ ആണ്.
02:28 ഇങ്ങനെയാണ് നമ്മൾ ഒരു ക്ലാസ്സ്‌ അടക്കുന്നത്.
02:31 ഇനി നമുക്ക് ആക്സസ് സ്പെസിഫയറുകളെ കൂടുതൽ അറിയാൻ നമ്മളുടെ സ്ലൈഡുകളിലേക്ക് വീണ്ടും പോകാം.
02:36 പബ്ലിക് സ്പെസിഫയർ
02:39 പബ്ലിക് സ്പെസിഫയർ ക്ലാസിന് പുറത്ത് നിന്നും ഡാറ്റ ഉപയോഗിക്കുന്നത് അനുവദിക്കുന്നു.
02:44 ഒരു പബ്ലിക് മെംബർനെ പ്രോഗ്രാമിൽ എവിടെയും ഉപയോഗിക്കാൻ കഴിയും
02:49 പ്രൈവറ്റ് സ്പെസിഫയർ
02:51 പ്രൈവറ്റ് ആയി ഡിക്ലെർ ചെയ്തിട്ടുള്ള മെംബേർസിനെ ക്ലാസിനു പുറത്തു നിന്ന് ഉപയോഗിക്കാനോ ആക്സസ് ചെയാനോ കഴിയില്ല.
02:57 പ്രൈവറ്റ് മെംബേർസ്നെ ക്ലാസ്സിലെ അംഗങ്ങൾക്ക് മാത്രമേ ഉപയോഗിക്കാൻ കഴിയൂ.
03:03 പ്രൊറ്റെക്റ്റഡ് സ്പെസിഫയർ
03:05 പ്രൊറ്റെക്റ്റഡ് മെംബേർസ്ന് ക്ലാസ്സ്ന് പുറത്തു നിന്ന് ആക്സസ് ചെയ്യാൻ കഴിയില്ല.
03:10 ഒരു ഡിറൈവിഡ് ക്ലാസ്സ്ന് പ്ററ്റെക്റ്റഡ് മെംബേർസ്നെ ആക്സസ്സ് ചെയ്യാനാവും.
03:13 നമ്മുക്ക് പ്രോഗ്രാംലേക്ക് തിരിച്ച് പോകാം.
03:16 ഇവിടെ കാണുന്ന സ്റ്റേറ്റ്മെൻറ്ിൽ ക്ലാസ്സിൻറെ പേരും
03:21 സ്കോപ്പ് റെസലൂഷൻ ഓപ്പറേറ്ററും ഫംഗ്ഷൻൻറെ പേരും ആണുളത്
03:25 ഈ ഓപ്പറേറ്റർ തീർച്ചയായും ഉപയോഗിക്കണം.
03:27 അതു വ്യക്തമാക്കുന്നത്‌ ഏരിയ എന്ന ഫംഗ്ഷൻ ഗ്ലോബൽ ഫംഗ്ഷൻനല്ല എന്നാണ്
03:33 അതു square എന്ന ക്ലാസ് ലെ ഒരു മെംബർ ഫംഗ്ഷൻ ആണ്
03:36 ഇവിടെ നാം int a എന്ന ഒരു ആർഗ്യമൻറ്റ് കൊടുക്കുന്നു.
03:40 ഇനി നമുക്ക് സ്കോപ്പ് റെസലൂഷൻ ഓപ്പറേറ്റർനെ കുറിച്ച് കൂടുതൽ അറിയാൻ സ്ലൈഡുകളില്ലേക്ക് മടങ്ങി വരാം.
03:46 മറച്ചുവച്ചിരിക്കുന്ന ഡാറ്റ ആക്സസ് ചെയ്യാൻ ഇത് ഉപയോഗിക്കുന്നു.
03:49 ഒരേ പേരിലുള്ള വേരിയബിൾ അല്ലെങ്കിൽ ഫംഗ്ഷൻസ് ആക്സസ് ചെയ്യാൻ നമ്മൾ സ്കോപ്പ് റെസലൂഷൻ ഓപ്പറേറ്റർ :: ഉപയോഗിക്കുന്നു.
03:56 ലോക്കൽ വേരിയബിളും ഗ്ലോബൽ വേരിയബിളും ഒരേ പേരുള്ളവയാണെന്ന് കരുതുക
04:01 ലോക്കൽ വേരിയബിളിനാണ് മുൻഗണന ലഭിക്കുക.
04:05  (സ്കോപ്പ് റെസലൂഷൻ ഓപ്പറേറ്റർ.) :: ഉപയോഗിച്ച് നമ്മുക്ക് ഗ്ലോബൽ  വേരിയബിൾ ആക്സസ് ചെയ്യാൻ കഴിയും .
04:10 ഇനി നമ്മുക്ക് പ്രോഗ്രാമിലേക്ക് പോകാം.
04:12 ഇവിടെ "a" യുടെ മൂല്യം "X" ൽ സൂക്ഷിച്ചിരിക്കുന്നു.
04:17 അതിന് ശേഷം സമചതുരത്തിന്റെ വിസ്തീർണ്ണം റിട്ടേണ്‍ ചെയുന്നു.
04:20 ഇവിടെ "X" ഒരു പ്രൈവറ്റ് മെംബറാണ്.
04:22 പ്രൈവറ്റ് പരാമീറ്റർ ആക്സസ് ചെയ്യാൻ നമ്മൾ “a” എന്ന പബ്ലിക് മെംബർ ഉപയോഗിച്ചു.
04:27 പ്രൈവറ്റ് അംഗങ്ങൾ എപ്പോഴും അദൃശ്യമായിരിക്കും.
04:30 ഇത് നമ്മുടെ മെയിൻ ഫംഗ്ഷൻ ആണ്.
04:33 square എന്ന ക്ലാസ്സിന്‍റെ ഒബ്ജെക്റ്റാണ് sqr.
04:37 ഇങ്ങനെയാണ് നമ്മൾ ഒരു ഒബ്ജെക്റ്റ് ഉണ്ടാക്കുന്നത്.
04:40  ക്ലാസ്ൻറെ പേരിന് ശേഷം ഒബ്ജെക്റ്റിൻറെ പേര്.
04:43 ഇവിടെ നമ്മൾ sqr എന്ന ഒബ്ജെക്റ്റും .( ഡോട്ട്) ഓപ്പറേറ്ററും ഉപയോഗിച്ച് area എന്ന ഫംഗ്ഷനെ വിളിക്കുന്നു
04:50 പിന്നീട് നമ്മൾ "4" എന്ന ഒരു ആർഗ്യമൻറ്റ് കൊടുക്കുന്നു.
04:53 "X" ൻറെ വില "4" ആയി നിശ്ചയിക്കുന്നു.
04:57 ഇത് ഒരു റിട്ടേണ്‍ സ്റ്റേറ്റ്മൻറ്റ് ആണ്.
04:59 സേവ് ക്ലിക്ക് ചെയ്യുക.
05:00 ഇനി നമ്മുക്ക് പ്രോഗ്രാം എക്സിക്യൂട്ട് ചെയ്യാം.
05:03 നിങ്ങളുടെ കീബോർഡ് ഒരേസമയത്ത് Ctrl + Alt + T എന്നീ കീകൾ അമർത്തി ടെർമിനൽ വിൻഡോ തുറക്കുക.
05:11 കമ്പൈൽ ചെയ്യാൻ g++ സ്പേസ് class ഹൈഫൻ obj ഡോട്ട് cpp സ്പേസ് ഹൈഫൻ o സ്പേസ് class എന്ന് എഴുതുക.
05:20  എൻറ്റർ അമർത്തുക.
05:22  ./class(ഡോട്ട് സ്ലാഷ് ക്ലാസ്) എന്ന് ടൈപ്പ് ചെയ്യുക. എൻറ്റർ അമർത്തുക.
05:25 നമുക്ക് കിട്ടുന്ന ഔട്ട്പുട്ട് :
05:28 area of the square is 16 എന്നായിരിക്കും.
05:30 നമുക്ക് പ്രോഗ്രമിലേക്ക് തിരിച്ചു പോകാം.
05:35 ഇതുവരെ നമ്മൾ കണ്ടത്.
05:37 ഒരു ക്ലാസ്സിൽ ഡാറ്റയും ഫംഗ്ഷൻസും ഒന്നിച്ചു ചേർത്തിരിക്കുന്നു.
05:41 ക്ലാസ്സ് ഒരു ഏകകം ആണ്.
05:44  ആ ക്ലാസ്സിൽ ഉപയോഗിച്ചിട്ടുള്ള എല്ലാ ഡാറ്റയും ഫംഗ്ഷൻസും അതിൽ ഒന്നിച്ചു ചേർത്തിരിക്കുന്നു.
05:49 ഇതാണ് എൻകാപ്സുലേഷൻ.
05:53 പിന്നീട് നമ്മൾ കണ്ടത് പ്രൈവറ്റ് അതുപോലെ തന്നെ പബ്ലിക്‌ മെംബേർസ് ഉള്ള ക്ലാസ്സാണ്.
05:59 പ്രൈവറ്റ് ഡാറ്റ എപ്പോഴും മറഞ്ഞിരിക്കുന്നു.
06:02 അതു ക്ലാസ്സിന് പുറത്തു നിന്നും ആക്സസ് ചെയ്യാൻ കഴിയില്ല.
06:05 ഇതിനെ ഡാറ്റ ആബ്സ്റ്റ്റാക്ഷൻ എന്ന് പറയുന്നു.
06:09 ഇൻറ്റർഫേസ് നോക്കാം, പക്ഷേ ഇതിൻറെ പ്രവർത്തനം മറച്ച് വച്ചിരിക്കുന്നു.
06:14 ഈ ടൂട്ടോറിയൽ ഇവിടെ അവസാനിക്കുന്നു.
06:17 നമ്മുക്ക് സ്ലൈഡ്ിലേക്ക് മടങ്ങി പോകാം.ചുരുക്കത്തിൽ
06:20 ഇവിടെ പഠിച്ചത്,എൻകാപ്സുലേഷൻ
06:24 ഡാറ്റാ അബ്സ്ട്രാക്ഷൻ പ്രൈവറ്റ് മെംബർസ്
06:27 int x;
06:29 പബ്ലിക് ഫംഗ്ഷൻസ് int area(int);
06:32 ക്ലാസുകൾ class square
06:35 ഒബ്ജക്റ്റ് സൃഷ്ടിക്കാൻ
06:37 square sqr;
06:39 ഒരു ഫംഗ്ഷൻ വിളിക്കാൻ ഒബ്ജെക്റ്റ് sqr.area(); ഉപയോഗിക്കുന്നു.
06:43 നിങ്ങൾ ചെയേണ്ടത് തന്നിരിക്കുന്ന സർക്കിൾിൻറെ ചുറ്റളവ്‌ കണ്ടെത്താൻ ഒരു പ്രോഗ്രാം എഴുതുക.
06:49 താഴെ കാണിച്ചിരിക്കുന്ന ലിങ്കിൽ ലഭ്യമായ വീഡിയോ കാണുക.
06:52 ഇത് സ്പോക്കണ്‍ ട്യൂട്ടോറിയൽ പ്രൊജക്റ്റിനെ സംഗ്രഹിക്കുന്നു.
06:55 നല്ല ബാന്ഡ് വിഡ്ത്ത് ഇല്ലെങ്കിൽ ഡൌണ്‍ലോഡ് ചെയ്ത് കാണാവുന്നതാണ്.
07:00 സ്പോക്കണ് ട്യൂട്ടോറിയൽ പ്രോജക്ട് ടീം,
07:02 സ്പോക്കണ് ട്യൂട്ടോറിയൽസ് ഉപയോഗിച്ച് വർക്ക്‌ ഷോപ്പുകൾ നടത്തുന്നു.
07:05 ഓൺലൈൻ പരിക്ഷ പാസാകുന്നവർക്ക് സർട്ടിഫിക്കറ്റുകൾ നൽകുന്നു.
07:09 കൂടുതല്‍ വിവരങ്ങള്‍ക്കായി ഈ വെബ്സൈറ്റ് സന്ദർശിക്കുക.
07:16 സ്പോക്കണ് ട്യൂട്ടോറിയല് പ്രോജക്റ്റ് ടോക്ക് ടു എ ടീച്ചർ പ്രൊജക്റ്റിന്റെ ഭാഗമാണ്.
07:20 ഇതിനെ പിന്തുണയ്ക്കുന്നത്‌, നാഷണൽ മിഷൻ ഓണ് എഡ്യൂക്കേഷൻ ത്രൂ ICT, MHRD, ഗവണ്മെന്റ് ഓഫ് ഇന്ത്യ.
07:26 ഈ മിഷൻനെ കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾ ഇവിടെ ലഭ്യമാണ്
07:31 ഈ ട്യൂട്ടോറിയൽ വിവർത്തനം ചെയ്തത് ജെയിൻ ജോസഫ്‌. ഞാൻ ദേവി സേനൻ, IIT Bombay, നന്ദി.

Contributors and Content Editors

Devisenan, Janejoseph 15, Pratik kamble