Difference between revisions of "Ruby/C3/Object-Oriented-Concept-in-Ruby/English-timed"
From Script | Spoken-Tutorial
PoojaMoolya (Talk | contribs) (Created page with ' {| border=1 || ''Time''' || '''Narration''' |- | 00.01 | Welcome to this spoken tutorial on ''' Object Oriented Concept''' in '''Ruby'''. |- | 00.06 | In this tutorial we …') |
|||
Line 2: | Line 2: | ||
{| border=1 | {| border=1 | ||
− | || ''Time''' | + | || '''Time''' |
|| '''Narration''' | || '''Narration''' | ||
|- | |- | ||
− | | 00 | + | | 00:01 |
| Welcome to this spoken tutorial on ''' Object Oriented Concept''' in '''Ruby'''. | | Welcome to this spoken tutorial on ''' Object Oriented Concept''' in '''Ruby'''. | ||
|- | |- | ||
− | | 00 | + | | 00:06 |
| In this tutorial we will learn to use- | | In this tutorial we will learn to use- | ||
|- | |- | ||
− | | 00 | + | | 00:08 |
| '''classes''' | | '''classes''' | ||
|- | |- | ||
− | | 00 | + | | 00:09 |
|creating '''objects''' | |creating '''objects''' | ||
|- | |- | ||
− | | 00 | + | | 00:10 |
|different ways of defining '''methods''' in '''Ruby''' | |different ways of defining '''methods''' in '''Ruby''' | ||
|- | |- | ||
− | | 00 | + | | 00:13 |
|Here we are using | |Here we are using | ||
|- | |- | ||
− | | 00 | + | | 00:14 |
| ''' Ubuntu''' version 12.04 | | ''' Ubuntu''' version 12.04 | ||
|- | |- | ||
− | | 00 | + | | 00:16 |
|''' Ruby '''1.9.3 | |''' Ruby '''1.9.3 | ||
|- | |- | ||
− | | 00 | + | | 00:19 |
|To follow this tutorial, you must have knowledge of ''' Linux''' commands, ''' Terminal''' and '''Text-editor.''' | |To follow this tutorial, you must have knowledge of ''' Linux''' commands, ''' Terminal''' and '''Text-editor.''' | ||
|- | |- | ||
− | | 00 | + | | 00:24 |
| If not, for relevant tutorials, please visit our website. | | If not, for relevant tutorials, please visit our website. | ||
|- | |- | ||
− | | 00 | + | | 00:28 |
| Before we begin, recall that we had created a ''' “ttt” ''' directory earlier. | | Before we begin, recall that we had created a ''' “ttt” ''' directory earlier. | ||
|- | |- | ||
− | | 00 | + | | 00:33 |
|Let's go to that directory. | |Let's go to that directory. | ||
|- | |- | ||
− | | 00 | + | | 00:35 |
|To ''' ruby hyphen tutorial''' and ''' classes''' directory. | |To ''' ruby hyphen tutorial''' and ''' classes''' directory. | ||
|- | |- | ||
− | | 00 | + | | 00:41 |
|''' Ruby''' is an ''' object oriented''' language. | |''' Ruby''' is an ''' object oriented''' language. | ||
|- | |- | ||
− | | 00 | + | | 00:44 |
| Everything in '''Ruby''' is an object; from a value to a '''string''' or number. | | Everything in '''Ruby''' is an object; from a value to a '''string''' or number. | ||
|- | |- | ||
− | | 00 | + | | 00:49 |
|A '''class''' is a collection of related '''data''' and '''functions.'' | |A '''class''' is a collection of related '''data''' and '''functions.'' | ||
|- | |- | ||
− | | 00 | + | | 00:53 |
|It can serve to keep information organized. | |It can serve to keep information organized. | ||
|- | |- | ||
− | | 00 | + | | 00:56 |
|An '''object''' is an ''' instantiation''' of a '''class.''' | |An '''object''' is an ''' instantiation''' of a '''class.''' | ||
|- | |- | ||
− | | 01 | + | | 01:00 |
| A '''class''' definition begins with the keyword '''class.''' | | A '''class''' definition begins with the keyword '''class.''' | ||
|- | |- | ||
− | | 01 | + | | 01:05 |
| It is followed by the name of the '''class.''' | | It is followed by the name of the '''class.''' | ||
|- | |- | ||
− | | 01 | + | | 01:08 |
| It is delimited with an ''' “end”.''' | | It is delimited with an ''' “end”.''' | ||
|- | |- | ||
− | | 01 | + | | 01:11 |
|Let us look at an example of a ''' class.''' | |Let us look at an example of a ''' class.''' | ||
|- | |- | ||
− | | 01 | + | | 01:14 |
|''' class Product''' | |''' class Product''' | ||
|- | |- | ||
− | | 01 | + | | 01:16 |
|''' ruby code''' | |''' ruby code''' | ||
|- | |- | ||
− | | 01 | + | | 01:17 |
|'''end''' | |'''end''' | ||
|- | |- | ||
− | | 01 | + | | 01:20 |
| The name of the '''class''' must begin with a capital letter. | | The name of the '''class''' must begin with a capital letter. | ||
|- | |- | ||
− | | 01 | + | | 01:24 |
|Names that contain more than one word should be camelcased. | |Names that contain more than one word should be camelcased. | ||
|- | |- | ||
− | | 01 | + | | 01:28 |
| For example, | | For example, | ||
|- | |- | ||
− | | 01 | + | | 01:30 |
| ''' UserInformation''' | | ''' UserInformation''' | ||
|- | |- | ||
− | | 01 | + | | 01:32 |
| '''ProductInformation''' | | '''ProductInformation''' | ||
|- | |- | ||
− | | 01 | + | | 01:34 |
|The subsequent file names will have underscore separating the words: | |The subsequent file names will have underscore separating the words: | ||
|- | |- | ||
− | | 01 | + | | 01:37 |
|''' user underscore information''' | |''' user underscore information''' | ||
|- | |- | ||
− | | 01 | + | | 01:40 |
|''' product underscore information''' | |''' product underscore information''' | ||
|- | |- | ||
− | | 01 | + | | 01:45 |
| Create a new file in ''' gedit''' as shown in the basic level '''Ruby''' tutorials. | | Create a new file in ''' gedit''' as shown in the basic level '''Ruby''' tutorials. | ||
|- | |- | ||
− | | 01 | + | | 01:48 |
| Name it ''' class_definition.rb''' | | Name it ''' class_definition.rb''' | ||
|- | |- | ||
− | | 01 | + | | 01:52 |
| I have a working example of the implementation of '''classes.''' | | I have a working example of the implementation of '''classes.''' | ||
|- | |- | ||
− | | 01 | + | | 01:57 |
|You can pause the tutorial, and type the code as we go through it. | |You can pause the tutorial, and type the code as we go through it. | ||
|- | |- | ||
− | | 02 | + | | 02:02 |
| I have defined a ''' class''' named ''' Order''' in this example. | | I have defined a ''' class''' named ''' Order''' in this example. | ||
|- | |- | ||
− | | 02 | + | | 02:05 |
| Now let us make the ''' class''' useful by adding some '''variables.''' | | Now let us make the ''' class''' useful by adding some '''variables.''' | ||
|- | |- | ||
− | | 02 | + | | 02:11 |
|Then I have defined an ''' instance variable “myinstance”.''' | |Then I have defined an ''' instance variable “myinstance”.''' | ||
|- | |- | ||
− | | 02 | + | | 02:15 |
|And I have assigned a value to it. | |And I have assigned a value to it. | ||
|- | |- | ||
− | | 02 | + | | 02:18 |
|I have also defined a ''' class variable “myclassvar” ''' | |I have also defined a ''' class variable “myclassvar” ''' | ||
|- | |- | ||
− | | 02 | + | | 02:21 |
|And I have assigned a value to it. | |And I have assigned a value to it. | ||
|- | |- | ||
− | | 02 | + | | 02:24 |
|Now let us add some code that will make use of this class. | |Now let us add some code that will make use of this class. | ||
|- | |- | ||
− | | 02 | + | | 02:30 |
| Type ''' puts Order dot instance underscore variables.''' | | Type ''' puts Order dot instance underscore variables.''' | ||
|- | |- | ||
− | | 02 | + | | 02:36 |
| Before this line, add '''puts''' some characters '''slash n''' for a new line. | | Before this line, add '''puts''' some characters '''slash n''' for a new line. | ||
|- | |- | ||
− | | 02 | + | | 02:43 |
| Let us copy and paste that and add it just below the line we added and save it. | | Let us copy and paste that and add it just below the line we added and save it. | ||
|- | |- | ||
− | | 02 | + | | 02:51 |
| Now let us execute this code | | Now let us execute this code | ||
|- | |- | ||
− | | 02 | + | | 02:53 |
|Switch to the terminal and type | |Switch to the terminal and type | ||
|- | |- | ||
− | | 02 | + | | 02:56 |
| ''' ruby space class underscore definition dot rb''' | | ''' ruby space class underscore definition dot rb''' | ||
|- | |- | ||
− | | 03 | + | | 03:02 |
|and see the output. | |and see the output. | ||
|- | |- | ||
− | | 03 | + | | 03:05 |
| You will see the ''' instance variable''' you defined. | | You will see the ''' instance variable''' you defined. | ||
|- | |- | ||
− | | 03 | + | | 03:09 |
|Now let us type ''' puts Order dot class underscore variables.''' | |Now let us type ''' puts Order dot class underscore variables.''' | ||
|- | |- | ||
− | | 03 | + | | 03:15 |
|Let us copy and paste the demarcation, just below the line and save it. | |Let us copy and paste the demarcation, just below the line and save it. | ||
|- | |- | ||
− | | 03 | + | | 03:21 |
| Now let us switch to the '''terminal''' and execute the file like before. | | Now let us switch to the '''terminal''' and execute the file like before. | ||
|- | |- | ||
− | | 03 | + | | 03:26 |
|You will notice the ''' class variable''' you defined, also show up. | |You will notice the ''' class variable''' you defined, also show up. | ||
|- | |- | ||
− | | 03 | + | | 03:32 |
| To now be able to write your own '''class.''' | | To now be able to write your own '''class.''' | ||
|- | |- | ||
− | | 03 | + | | 03:35 |
| Next, let us look at what an '''object''' is. | | Next, let us look at what an '''object''' is. | ||
|- | |- | ||
− | | 03 | + | | 03:40 |
|An '''object''' is an '''instance''' of a '''class.''' | |An '''object''' is an '''instance''' of a '''class.''' | ||
|- | |- | ||
− | | 03 | + | | 03:43 |
| Which means an '''object''' is created from a '''class.''' | | Which means an '''object''' is created from a '''class.''' | ||
|- | |- | ||
− | | 03 | + | | 03:46 |
|An '''object''' will have the properties and '''methods''' defined in the '''class.''' | |An '''object''' will have the properties and '''methods''' defined in the '''class.''' | ||
|- | |- | ||
− | | 03 | + | | 03:52 |
| How do you declare an '''object''' | | How do you declare an '''object''' | ||
|- | |- | ||
− | | 03 | + | | 03:54 |
|We declare an '''object''' of a class using the '''new keyword.''' | |We declare an '''object''' of a class using the '''new keyword.''' | ||
|- | |- | ||
− | | 03 | + | | 03:58 |
|Here we are declaring an '''object''' of the '''Product class.''' | |Here we are declaring an '''object''' of the '''Product class.''' | ||
|- | |- | ||
− | | 04 | + | | 04:02 |
| Here an '''object''' gets created. | | Here an '''object''' gets created. | ||
|- | |- | ||
− | | 04 | + | | 04:05 |
|''' product = Product.new''' | |''' product = Product.new''' | ||
|- | |- | ||
− | | 04 | + | | 04:09 |
| This process is called ''' initialization''' of an object. | | This process is called ''' initialization''' of an object. | ||
|- | |- | ||
− | | 04 | + | | 04:12 |
|This '''object''' is of '''type''': '''Product.''' | |This '''object''' is of '''type''': '''Product.''' | ||
|- | |- | ||
− | | 04 | + | | 04:16 |
|Now let is look at what an ''' “initialize” method''' is. | |Now let is look at what an ''' “initialize” method''' is. | ||
|- | |- | ||
− | | 04 | + | | 04:20 |
|An ''' initialize method''' is called at the time of '''object''' creation. | |An ''' initialize method''' is called at the time of '''object''' creation. | ||
|- | |- | ||
− | | 04 | + | | 04:26 |
| On calling '''new''' on an '''object''', we invoke the '''initialize method.''' | | On calling '''new''' on an '''object''', we invoke the '''initialize method.''' | ||
|- | |- | ||
− | | 04 | + | | 04:31 |
|An '''initialize method''' may take a list of '''parameters.''' | |An '''initialize method''' may take a list of '''parameters.''' | ||
|- | |- | ||
− | | 04 | + | | 04:37 |
|Like other ''' Ruby methods''', it is preceded by the ''' “def” keyword.''' | |Like other ''' Ruby methods''', it is preceded by the ''' “def” keyword.''' | ||
|- | |- | ||
− | | 04 | + | | 04:43 |
|Let us look at an example. | |Let us look at an example. | ||
|- | |- | ||
− | | 04 | + | | 04:46 |
|Create a new file in '''gedit''' as shown in the basic level '''Ruby''' tutorials. | |Create a new file in '''gedit''' as shown in the basic level '''Ruby''' tutorials. | ||
|- | |- | ||
− | | 04 | + | | 04:50 |
| And name it '''object undescore initialize dot rb ''' | | And name it '''object undescore initialize dot rb ''' | ||
|- | |- | ||
− | | 04 | + | | 04:55 |
| I have a working example of the ''' object initialization''' code. | | I have a working example of the ''' object initialization''' code. | ||
|- | |- | ||
− | | 05 | + | | 05:00 |
| You can pause the tutorial, and type the code as we go through it. | | You can pause the tutorial, and type the code as we go through it. | ||
|- | |- | ||
− | | 05 | + | | 05:04 |
|Here I have defined a ''' class''' called ''' “Order” ''' | |Here I have defined a ''' class''' called ''' “Order” ''' | ||
|- | |- | ||
− | | 05 | + | | 05:08 |
|Then I have defined the ''' initialize method''', with no '''argument.''' | |Then I have defined the ''' initialize method''', with no '''argument.''' | ||
|- | |- | ||
− | | 05 | + | | 05:13 |
| I have defined a '''puts method''' to display the message '''“I have created an object”. | | I have defined a '''puts method''' to display the message '''“I have created an object”. | ||
|- | |- | ||
− | | 05 | + | | 05:20 |
|Next, I have defined '''Order dot new'''. | |Next, I have defined '''Order dot new'''. | ||
|- | |- | ||
− | | 05 | + | | 05:24 |
|This will invoke the '''initialize method.''' | |This will invoke the '''initialize method.''' | ||
|- | |- | ||
− | | 05 | + | | 05:27 |
|Switch to the '''terminal''' and type | |Switch to the '''terminal''' and type | ||
|- | |- | ||
− | | 05 | + | | 05:31 |
|'''ruby space object underscore initialize dot rb''' | |'''ruby space object underscore initialize dot rb''' | ||
|- | |- | ||
− | | 05 | + | | 05:36 |
| and see the output. | | and see the output. | ||
|- | |- | ||
− | |05 | + | |05:39 |
|You will see the message ''' “I have created an object” ''' . | |You will see the message ''' “I have created an object” ''' . | ||
|- | |- | ||
− | | 05 | + | | 05:43 |
|Now let us go back to '''gedit''' and add an '''argument''' to the '''method.''' | |Now let us go back to '''gedit''' and add an '''argument''' to the '''method.''' | ||
|- | |- | ||
− | | 05 | + | | 05:48 |
|Let us modify the ''' puts''' . | |Let us modify the ''' puts''' . | ||
|- | |- | ||
− | | 05 | + | | 05:51 |
|It should display the value of the ''' argument''' passed. | |It should display the value of the ''' argument''' passed. | ||
|- | |- | ||
− | | 05 | + | | 05:55 |
| Next let us type | | Next let us type | ||
|- | |- | ||
− | | 05 | + | | 05:56 |
|''' Order dot new(“I have created an object”). ''' | |''' Order dot new(“I have created an object”). ''' | ||
|- | |- | ||
− | | 06 | + | | 06:04 |
|Here we have given an argument to the new method. | |Here we have given an argument to the new method. | ||
|- | |- | ||
− | | 06 | + | | 06:08 |
| This '''argument''' gets passed on to the '''initialize method.''' | | This '''argument''' gets passed on to the '''initialize method.''' | ||
|- | |- | ||
− | | 06 | + | | 06:13 |
|Switch to the ''' terminal''' and type | |Switch to the ''' terminal''' and type | ||
|- | |- | ||
− | | 06 | + | | 06:16 |
|''' ruby space object underscore initialize dot rb''' | |''' ruby space object underscore initialize dot rb''' | ||
|- | |- | ||
− | | 06 | + | | 06:20 |
|and see the output. | |and see the output. | ||
|- | |- | ||
− | | 06 | + | | 06:22 |
|You will see the message ''' “I have created an object” ''' printed out. | |You will see the message ''' “I have created an object” ''' printed out. | ||
|- | |- | ||
− | | 06 | + | | 06:29 |
| Now, you would have understood what ''' object initialization''' means. | | Now, you would have understood what ''' object initialization''' means. | ||
|- | |- | ||
− | | 06 | + | | 06:33 |
|Recall that in '''Ruby, methods''' are the '''functions''' that a '''class''' performs. | |Recall that in '''Ruby, methods''' are the '''functions''' that a '''class''' performs. | ||
|- | |- | ||
− | | 06 | + | | 06:39 |
|Each '''method''' in a class is defined within the ''' “def” ''' and ''' “end”''' block. | |Each '''method''' in a class is defined within the ''' “def” ''' and ''' “end”''' block. | ||
|- | |- | ||
− | | 06 | + | | 06:45 |
|A multiword ''' method''' name is separated with an '''underscore.''' | |A multiword ''' method''' name is separated with an '''underscore.''' | ||
|- | |- | ||
− | | 06 | + | | 06:48 |
|Some of the characters that can be appended to a '''method''' name are: | |Some of the characters that can be appended to a '''method''' name are: | ||
|- | |- | ||
− | | 06 | + | | 06:54 |
|''' ? (question-mark) ''' | |''' ? (question-mark) ''' | ||
|- | |- | ||
− | | 06 | + | | 06:56 |
|''' = (equal to) ''' | |''' = (equal to) ''' | ||
|- | |- | ||
− | | 06 | + | | 06:58 |
|Each of the characters add some meaning to the '''method.''' | |Each of the characters add some meaning to the '''method.''' | ||
|- | |- | ||
− | | 07 | + | | 07:02 |
|Let us look at some examples. | |Let us look at some examples. | ||
|- | |- | ||
− | | 07 | + | | 07:05 |
|Create a new file in ''' gedit''' as shown in the basic level '''Ruby''' tutorials. | |Create a new file in ''' gedit''' as shown in the basic level '''Ruby''' tutorials. | ||
|- | |- | ||
− | | 07 | + | | 07:09 |
|And name it ''' class underscore methods dot rb'''. | |And name it ''' class underscore methods dot rb'''. | ||
|- | |- | ||
− | | 07 | + | | 07:14 |
|I have a working example of ''' class methods''' code. | |I have a working example of ''' class methods''' code. | ||
|- | |- | ||
− | | 07 | + | | 07:17 |
|You can pause the tutorial, and type the code as we go through it. | |You can pause the tutorial, and type the code as we go through it. | ||
|- | |- | ||
− | | 07 | + | | 07:21 |
|Here I have defined a class named ''' “Animal”.''' | |Here I have defined a class named ''' “Animal”.''' | ||
|- | |- | ||
− | | 07 | + | | 07:23 |
|Then I have two ''' methods “breathe” ''' and ''' “walk”.''' | |Then I have two ''' methods “breathe” ''' and ''' “walk”.''' | ||
|- | |- | ||
− | | 07 | + | | 07:28 |
|They are both defined with the ''' “def” ''' and ''' “end”''' keywords. | |They are both defined with the ''' “def” ''' and ''' “end”''' keywords. | ||
|- | |- | ||
− | | 07 | + | | 07:32 |
|I have then initialized the ''' object Animal.''' | |I have then initialized the ''' object Animal.''' | ||
|- | |- | ||
− | | 07 | + | | 07:36 |
|I have assigned it to a variable called ''' “animal”''' with lowercase ''' “a”.''' | |I have assigned it to a variable called ''' “animal”''' with lowercase ''' “a”.''' | ||
|- | |- | ||
− | | 07 | + | | 07:40 |
|Then I have invoked the ''' methods “breathe” ''' and ''' “walk” ''' consequtively. | |Then I have invoked the ''' methods “breathe” ''' and ''' “walk” ''' consequtively. | ||
|- | |- | ||
− | | 07 | + | | 07:48 |
|Now let us execute the program. | |Now let us execute the program. | ||
|- | |- | ||
− | | 07 | + | | 07:51 |
|Switch to the '''terminal''' and type | |Switch to the '''terminal''' and type | ||
|- | |- | ||
− | | 07 | + | | 07:53 |
|''' ruby space class underscore methods dot rb ''' | |''' ruby space class underscore methods dot rb ''' | ||
|- | |- | ||
− | | 07 | + | | 07:58 |
|and see the output. | |and see the output. | ||
|- | |- | ||
− | | 08 | + | | 08:00 |
|You will notice the lines: | |You will notice the lines: | ||
|- | |- | ||
− | | 08 | + | | 08:02 |
|'''“ I breathe” ''' | |'''“ I breathe” ''' | ||
|- | |- | ||
− | | 08 | + | | 08:03 |
|'''“ I walk” ''' | |'''“ I walk” ''' | ||
|- | |- | ||
− | | 08 | + | | 08:04 |
|printed out. | |printed out. | ||
|- | |- | ||
− | | 08 | + | | 08:05 |
|This is because you have invoked the two methods ''' “breathe” ''' and ''' “walk”. ''' | |This is because you have invoked the two methods ''' “breathe” ''' and ''' “walk”. ''' | ||
|- | |- | ||
− | | 08 | + | | 08:10 |
|A '''“puts” ''' statement defined within these '''methods''' gives the results you see. | |A '''“puts” ''' statement defined within these '''methods''' gives the results you see. | ||
|- | |- | ||
− | | 08 | + | | 08:16 |
|Next, let us look at how to create '''methods''' with a trailing '''question mark.''' | |Next, let us look at how to create '''methods''' with a trailing '''question mark.''' | ||
|- | |- | ||
− | | 08 | + | | 08:21 |
|Create a new file in '''gedit''' as shown in the basic level Ruby tutorials. | |Create a new file in '''gedit''' as shown in the basic level Ruby tutorials. | ||
|- | |- | ||
− | | 08 | + | | 08:25 |
|And name it '''class underscore methods underscore with underscore trailing underscore characters dot rb''' | |And name it '''class underscore methods underscore with underscore trailing underscore characters dot rb''' | ||
|- | |- | ||
− | | 08 | + | | 08:35 |
|I have a working example of '''class methods''' with '''question mark''' code. | |I have a working example of '''class methods''' with '''question mark''' code. | ||
|- | |- | ||
− | | 08 | + | | 08:40 |
|You can pause the tutorial, and type the code as we go through it. | |You can pause the tutorial, and type the code as we go through it. | ||
|- | |- | ||
− | | 08 | + | | 08:45 |
|Here I have taken the same class as before as an example. | |Here I have taken the same class as before as an example. | ||
|- | |- | ||
− | | 08 | + | | 08:48 |
|Here the '''breathe method''' has a trailing '''“question mark (?)”. ''' | |Here the '''breathe method''' has a trailing '''“question mark (?)”. ''' | ||
|- | |- | ||
− | | 08 | + | | 08:52 |
|Such '''methods''' are generally used to return '''boolean values. ''' | |Such '''methods''' are generally used to return '''boolean values. ''' | ||
|- | |- | ||
− | | 08 | + | | 08:55 |
|This is based on the '''method''' naming convention of Ruby. | |This is based on the '''method''' naming convention of Ruby. | ||
|- | |- | ||
− | | 09 | + | | 09:00 |
|The '''method''' gets invoked by declaring '''animal dot breathe question-mark''' | |The '''method''' gets invoked by declaring '''animal dot breathe question-mark''' | ||
|- | |- | ||
− | | 09 | + | | 09:06 |
|Switch to the '''terminal''' and type | |Switch to the '''terminal''' and type | ||
|- | |- | ||
− | | 09 | + | | 09:09 |
|'''ruby space class underscore methods underscore with underscore trailing underscore characters dot rb''' and see the output. | |'''ruby space class underscore methods underscore with underscore trailing underscore characters dot rb''' and see the output. | ||
|- | |- | ||
− | | 09 | + | | 09:22 |
|You will notice the output as : ''' “true” ''' | |You will notice the output as : ''' “true” ''' | ||
|- | |- | ||
− | | 09 | + | | 09:26 |
|Next, let us define another '''method''' called '''“walk”.''' | |Next, let us define another '''method''' called '''“walk”.''' | ||
|- | |- | ||
− | | 09 | + | | 09:30 |
|Let us place an ''' equal-to''' sign ''' “=(value)”''' beside it. | |Let us place an ''' equal-to''' sign ''' “=(value)”''' beside it. | ||
|- | |- | ||
− | | 09 | + | | 09:36 |
|Let us invoke this ''' method''' by calling ''' animal dot walk.''' | |Let us invoke this ''' method''' by calling ''' animal dot walk.''' | ||
|- | |- | ||
− | | 09 | + | | 09:41 |
|Then let us execute this '''method. ''' | |Then let us execute this '''method. ''' | ||
|- | |- | ||
− | | 09 | + | | 09:44 |
|Switch to the '''terminal''' and type | |Switch to the '''terminal''' and type | ||
|- | |- | ||
− | | 09 | + | | 09:45 |
|'''ruby class underscore methods underscore with underscore trailing underscore characters dot rb ''' | |'''ruby class underscore methods underscore with underscore trailing underscore characters dot rb ''' | ||
|- | |- | ||
− | | 09 | + | | 09:52 |
|and see the output. | |and see the output. | ||
|- | |- | ||
− | | 09 | + | | 09:56 |
|It will give an ''' “undefined method” ''' error. | |It will give an ''' “undefined method” ''' error. | ||
|- | |- | ||
− | | 09 | + | | 09:59 |
|This is because the ''' equal to sign''' has another meaning. | |This is because the ''' equal to sign''' has another meaning. | ||
|- | |- | ||
− | | 10 | + | | 10:03 |
|It is used to assign a value to a ''' method.''' | |It is used to assign a value to a ''' method.''' | ||
|- | |- | ||
− | | 10 | + | | 10:08 |
|So, let us invoke the '''method''' a little differently this time. | |So, let us invoke the '''method''' a little differently this time. | ||
|- | |- | ||
− | | 10 | + | | 10:13 |
|Type '''puts animal dot walk equal to “ hops” ''' | |Type '''puts animal dot walk equal to “ hops” ''' | ||
|- | |- | ||
− | | 10 | + | | 10:17 |
|Now let give it another try. | |Now let give it another try. | ||
|- | |- | ||
− | | 10 | + | | 10:20 |
|Switch to the ''' terminal''' and run the command like before and see the output. | |Switch to the ''' terminal''' and run the command like before and see the output. | ||
|- | |- | ||
− | | 10 | + | | 10:27 |
|You will notice that the word '''“hops”''' get printed. | |You will notice that the word '''“hops”''' get printed. | ||
|- | |- | ||
− | | 10 | + | | 10:30 |
|This demonstrates that the ''' equal to sign''' next to a method means assignment. | |This demonstrates that the ''' equal to sign''' next to a method means assignment. | ||
|- | |- | ||
− | | 10 | + | | 10:36 |
|Now you should be able to write your own '''methods. ''' | |Now you should be able to write your own '''methods. ''' | ||
|- | |- | ||
− | | 10 | + | | 10:42 |
|In this tutorial we have learnt- | |In this tutorial we have learnt- | ||
|- | |- | ||
− | | 10 | + | | 10:44 |
|How to declare '''classes ''' | |How to declare '''classes ''' | ||
|- | |- | ||
− | | 10 | + | | 10:46 |
|How to create ''' objects''' of a ''' class ''' | |How to create ''' objects''' of a ''' class ''' | ||
|- | |- | ||
− | | 10 | + | | 10:48 |
|Different ways of defining '''methods''' in '''Ruby''' | |Different ways of defining '''methods''' in '''Ruby''' | ||
|- | |- | ||
− | | 10 | + | | 10:52 |
|As an assignment: | |As an assignment: | ||
|- | |- | ||
− | | 10 | + | | 10:54 |
|Define a '''class Product ''' | |Define a '''class Product ''' | ||
|- | |- | ||
− | | 10 | + | | 10:56 |
|Define '''methods''' that you can use to get values of “myvar” and set values for “myvar”. | |Define '''methods''' that you can use to get values of “myvar” and set values for “myvar”. | ||
|- | |- | ||
− | | 11 | + | | 11:01 |
|To set values, define the '''method''' using “=” sign. | |To set values, define the '''method''' using “=” sign. | ||
|- | |- | ||
− | |11 | + | |11:05 |
|Instantiate the object of the class and set and get values using the above 2 methods. | |Instantiate the object of the class and set and get values using the above 2 methods. | ||
|- | |- | ||
− | | 11 | + | | 11:12 |
| Watch the video available at the following link. | | Watch the video available at the following link. | ||
|- | |- | ||
− | | 11 | + | | 11:14 |
|It summarises the Spoken Tutorial project. | |It summarises the Spoken Tutorial project. | ||
|- | |- | ||
− | | 11 | + | | 11:18 |
|If you do not have good bandwidth, you can download and watch it. | |If you do not have good bandwidth, you can download and watch it. | ||
|- | |- | ||
− | | 11 | + | | 11:22 |
| The Spoken Tutorial Project Team : | | The Spoken Tutorial Project Team : | ||
|- | |- | ||
− | | 11 | + | | 11:24 |
|Conducts workshops using spoken tutorials | |Conducts workshops using spoken tutorials | ||
|- | |- | ||
− | |11 | + | |11:27 |
|Gives certificates to those who pass an online test | |Gives certificates to those who pass an online test | ||
|- | |- | ||
− | | 11 | + | | 11:30 |
|For more details, please write to contact@spoken-tutorial.org | |For more details, please write to contact@spoken-tutorial.org | ||
|- | |- | ||
− | | 11 | + | | 11:36 |
| Spoken Tutorial Project is a part of the Talk to a Teacher project. | | Spoken Tutorial Project is a part of the Talk to a Teacher project. | ||
|- | |- | ||
− | | 11 | + | | 11:39 |
|It is supported by the National Mission on Education through ICT, MHRD, Government of India. | |It is supported by the National Mission on Education through ICT, MHRD, Government of India. | ||
|- | |- | ||
− | | 11 | + | | 11:46 |
|More information on this Mission is available at spoken hyphen tutorial dot org slash NMEICT hyphen Intro | |More information on this Mission is available at spoken hyphen tutorial dot org slash NMEICT hyphen Intro | ||
|- | |- | ||
− | | 11 | + | | 11:56 |
| This is Anjana Nair signing off. Thank you | | This is Anjana Nair signing off. Thank you | ||
|} | |} |
Revision as of 16:07, 10 July 2014
Time | Narration |
00:01 | Welcome to this spoken tutorial on Object Oriented Concept in Ruby. |
00:06 | In this tutorial we will learn to use- |
00:08 | classes |
00:09 | creating objects |
00:10 | different ways of defining methods in Ruby |
00:13 | Here we are using |
00:14 | Ubuntu version 12.04 |
00:16 | Ruby 1.9.3 |
00:19 | To follow this tutorial, you must have knowledge of Linux commands, Terminal and Text-editor. |
00:24 | If not, for relevant tutorials, please visit our website. |
00:28 | Before we begin, recall that we had created a “ttt” directory earlier. |
00:33 | Let's go to that directory. |
00:35 | To ruby hyphen tutorial and classes directory. |
00:41 | Ruby is an object oriented language. |
00:44 | Everything in Ruby is an object; from a value to a string or number.
|
00:49 | A class' is a collection of related data and functions. |
00:53 | It can serve to keep information organized. |
00:56 | An object is an instantiation of a class. |
01:00 | A class definition begins with the keyword class. |
01:05 | It is followed by the name of the class. |
01:08 | It is delimited with an “end”.
|
01:11 | Let us look at an example of a class. |
01:14 | class Product |
01:16 | ruby code |
01:17 | end |
01:20 | The name of the class must begin with a capital letter. |
01:24 | Names that contain more than one word should be camelcased. |
01:28 | For example, |
01:30 | UserInformation |
01:32 | ProductInformation |
01:34 | The subsequent file names will have underscore separating the words:
|
01:37 | user underscore information |
01:40 | product underscore information |
01:45 | Create a new file in gedit as shown in the basic level Ruby tutorials. |
01:48 | Name it class_definition.rb |
01:52 | I have a working example of the implementation of classes. |
01:57 | You can pause the tutorial, and type the code as we go through it. |
02:02 | I have defined a class named Order in this example. |
02:05 | Now let us make the class useful by adding some variables. |
02:11 | Then I have defined an instance variable “myinstance”. |
02:15 | And I have assigned a value to it. |
02:18 | I have also defined a class variable “myclassvar” |
02:21 | And I have assigned a value to it. |
02:24 | Now let us add some code that will make use of this class. |
02:30 | Type puts Order dot instance underscore variables.
|
02:36 | Before this line, add puts some characters slash n for a new line. |
02:43 | Let us copy and paste that and add it just below the line we added and save it. |
02:51 | Now let us execute this code |
02:53 | Switch to the terminal and type |
02:56 | ruby space class underscore definition dot rb |
03:02 | and see the output. |
03:05 | You will see the instance variable you defined. |
03:09 | Now let us type puts Order dot class underscore variables. |
03:15 | Let us copy and paste the demarcation, just below the line and save it. |
03:21 | Now let us switch to the terminal and execute the file like before. |
03:26 | You will notice the class variable you defined, also show up. |
03:32 | To now be able to write your own class. |
03:35 | Next, let us look at what an object is. |
03:40 | An object is an instance of a class. |
03:43 | Which means an object is created from a class. |
03:46 | An object will have the properties and methods defined in the class. |
03:52 | How do you declare an object |
03:54 | We declare an object of a class using the new keyword.
|
03:58 | Here we are declaring an object of the Product class. |
04:02 | Here an object gets created. |
04:05 | product = Product.new |
04:09 | This process is called initialization of an object. |
04:12 | This object is of type: Product.
|
04:16 | Now let is look at what an “initialize” method is. |
04:20 | An initialize method is called at the time of object creation.
|
04:26 | On calling new on an object, we invoke the initialize method. |
04:31 | An initialize method may take a list of parameters. |
04:37 | Like other Ruby methods, it is preceded by the “def” keyword. |
04:43 | Let us look at an example. |
04:46 | Create a new file in gedit as shown in the basic level Ruby tutorials. |
04:50 | And name it object undescore initialize dot rb |
04:55 | I have a working example of the object initialization code. |
05:00 | You can pause the tutorial, and type the code as we go through it. |
05:04 | Here I have defined a class called “Order” |
05:08 | Then I have defined the initialize method, with no argument. |
05:13 | I have defined a puts method to display the message “I have created an object”. |
05:20 | Next, I have defined Order dot new. |
05:24 | This will invoke the initialize method. |
05:27 | Switch to the terminal and type |
05:31 | ruby space object underscore initialize dot rb |
05:36 | and see the output. |
05:39 | You will see the message “I have created an object” . |
05:43 | Now let us go back to gedit and add an argument to the method. |
05:48 | Let us modify the puts . |
05:51 | It should display the value of the argument passed. |
05:55 | Next let us type |
05:56 | Order dot new(“I have created an object”). |
06:04 | Here we have given an argument to the new method. |
06:08 | This argument gets passed on to the initialize method. |
06:13 | Switch to the terminal and type |
06:16 | ruby space object underscore initialize dot rb |
06:20 | and see the output. |
06:22 | You will see the message “I have created an object” printed out. |
06:29 | Now, you would have understood what object initialization means. |
06:33 | Recall that in Ruby, methods are the functions that a class performs. |
06:39 | Each method in a class is defined within the “def” and “end” block.
|
06:45 | A multiword method name is separated with an underscore. |
06:48 | Some of the characters that can be appended to a method name are: |
06:54 | ? (question-mark) |
06:56 | = (equal to) |
06:58 | Each of the characters add some meaning to the method. |
07:02 | Let us look at some examples.
|
07:05 | Create a new file in gedit as shown in the basic level Ruby tutorials. |
07:09 | And name it class underscore methods dot rb. |
07:14 | I have a working example of class methods code. |
07:17 | You can pause the tutorial, and type the code as we go through it. |
07:21 | Here I have defined a class named “Animal”. |
07:23 | Then I have two methods “breathe” and “walk”. |
07:28 | They are both defined with the “def” and “end” keywords. |
07:32 | I have then initialized the object Animal. |
07:36 | I have assigned it to a variable called “animal” with lowercase “a”. |
07:40 | Then I have invoked the methods “breathe” and “walk” consequtively. |
07:48 | Now let us execute the program. |
07:51 | Switch to the terminal and type |
07:53 | ruby space class underscore methods dot rb |
07:58 | and see the output. |
08:00 | You will notice the lines: |
08:02 | “ I breathe” |
08:03 | “ I walk” |
08:04 | printed out. |
08:05 | This is because you have invoked the two methods “breathe” and “walk”.
|
08:10 | A “puts” statement defined within these methods gives the results you see. |
08:16 | Next, let us look at how to create methods with a trailing question mark. |
08:21 | Create a new file in gedit as shown in the basic level Ruby tutorials. |
08:25 | And name it class underscore methods underscore with underscore trailing underscore characters dot rb |
08:35 | I have a working example of class methods with question mark code. |
08:40 | You can pause the tutorial, and type the code as we go through it. |
08:45 | Here I have taken the same class as before as an example. |
08:48 | Here the breathe method has a trailing “question mark (?)”. |
08:52 | Such methods are generally used to return boolean values.
|
08:55 | This is based on the method naming convention of Ruby. |
09:00 | The method gets invoked by declaring animal dot breathe question-mark |
09:06 | Switch to the terminal and type |
09:09 | ruby space class underscore methods underscore with underscore trailing underscore characters dot rb and see the output.
|
09:22 | You will notice the output as : “true”
|
09:26 | Next, let us define another method called “walk”. |
09:30 | Let us place an equal-to sign “=(value)” beside it. |
09:36 | Let us invoke this method by calling animal dot walk. |
09:41 | Then let us execute this method. |
09:44 | Switch to the terminal and type |
09:45 | ruby class underscore methods underscore with underscore trailing underscore characters dot rb
|
09:52 | and see the output. |
09:56 | It will give an “undefined method” error. |
09:59 | This is because the equal to sign has another meaning. |
10:03 | It is used to assign a value to a method. |
10:08 | So, let us invoke the method a little differently this time. |
10:13 | Type puts animal dot walk equal to “ hops” |
10:17 | Now let give it another try. |
10:20 | Switch to the terminal and run the command like before and see the output. |
10:27 | You will notice that the word “hops” get printed. |
10:30 | This demonstrates that the equal to sign next to a method means assignment. |
10:36 | Now you should be able to write your own methods. |
10:42 | In this tutorial we have learnt- |
10:44 | How to declare classes |
10:46 | How to create objects of a class |
10:48 | Different ways of defining methods in Ruby |
10:52 | As an assignment: |
10:54 | Define a class Product |
10:56 | Define methods that you can use to get values of “myvar” and set values for “myvar”. |
11:01 | To set values, define the method using “=” sign. |
11:05 | Instantiate the object of the class and set and get values using the above 2 methods.
|
11:12 | Watch the video available at the following link. |
11:14 | It summarises the Spoken Tutorial project. |
11:18 | If you do not have good bandwidth, you can download and watch it. |
11:22 | The Spoken Tutorial Project Team : |
11:24 | Conducts workshops using spoken tutorials |
11:27 | Gives certificates to those who pass an online test |
11:30 | For more details, please write to contact@spoken-tutorial.org |
11:36 | Spoken Tutorial Project is a part of the Talk to a Teacher project. |
11:39 | It is supported by the National Mission on Education through ICT, MHRD, Government of India. |
11:46 | More information on this Mission is available at spoken hyphen tutorial dot org slash NMEICT hyphen Intro |
11:56 | This is Anjana Nair signing off. Thank you |
Contributors and Content Editors
Jyotisolanki, PoojaMoolya, Pratik kamble, Sandhya.np14, Shruti arya