Difference between revisions of "Java/C2/Using-this-keyword/English-timed"

From Script | Spoken-Tutorial
Jump to: navigation, search
Line 251: Line 251:
  
 
|-
 
|-
| 05:20
+
| 05:19
 
|  To avoid confliction between '''local''' and '''instance''' variables we use '''this '''keyword.
 
|  To avoid confliction between '''local''' and '''instance''' variables we use '''this '''keyword.
  
Line 279: Line 279:
  
 
|-
 
|-
|  05:54
+
|  05:53
 
|Now  Remove the comments.
 
|Now  Remove the comments.
  
Line 426: Line 426:
  
 
|-
 
|-
| 09:37
+
| 09:36
 
|  Then '''studentDetail method''' is executed.
 
|  Then '''studentDetail method''' is executed.
  
Line 448: Line 448:
  
 
|-
 
|-
| 10:01
+
| 10:00
 
|  We get  a compiler error.
 
|  We get  a compiler error.
  

Revision as of 13:26, 2 January 2014

Time' Narration
00:02 Welcome to the Spoken Tutorial on using this keyword in java.
00:07 In this tutorial we will learn
00:09 About use of this keyword
00:11 To use this keyword with fields
00:14 To use this keyword for chaining of constructors.



00:17 Here we are using
  • Ubuntu version 11.10
  • jdk 1.6
  • Eclipse 3.7.0


00:28 To follow this tutorial you must know
00:30 how to create a constructor in java using eclipse.


00:34 If not, for relevant tutorials please visit our website which is as shown,

(http://www.spoken-tutorial.org)

00:40 Now we will see the use of this key word
00:44 Within a constructor, this is a reference to the current object.


00:48 We can refer any member of the current object within a constructor using this.
00:55 Now we will see the use of this keyword with fields.
01:00 this keyword helps us to avoid name conflicts.


01:07 We can see such an example here.
01:10 For that let us open Eclipse.


01:17 Open the Student class we had created in the earlier tutorial.


01:23 Comment the default constructor comment the constructor with 1 parameter.


01:40 Also comment the code for creating the first two objects.


02:03 Now, notice the parameterized constructor.


02:11 the_roll_number and the_name are the arguments passed to the constructor.


02:20 roll_number and name are the instance variables.


02:26 Now, let me change the arguments to roll_number and name itself.


02:39 So inside the constructor we have:
02:42 roll_number equal to roll_number and name equal to name.


02:55 Now Save and run the file.So pressCtrl ,Sand Ctrl, F11
03:04 We get the output as follows:


03:07 I am a Parameterized Constructor

0

null
03:12 Now come back to the code.
03:17 We see 2 warnings in the code.
03:20 Hover your mouse over the warning symbol.
03:23 We can see The assignment to the variable roll_number has no effect.
03:29 And The assignment to the variable name has no effect.


03:33 This is because in the constructor roll_number and name are local variables.


03:40 Local variables are variables that are accessible within the method or block.


03:47 Here, roll_number and name will be initialized to 11 and Raju.
03:54 Because we have passed the values 11 and Rajuthe constructor.
04:01 But once they come out of the constructor, it is not accessible.


04:06 Then the only roll_number and name we know are the instance variables.


04:13 They have been initialized to 0 and null already once the object is created.


04:18 So we got the output as 0 and null.
04:21 Now, let us make a small change inside the constructor.


04:29 So type this dot roll_number equal to roll_number.


04:37 And this dot name equal to name.


04:44 Now save and run the file. So press ctrl, S And Ctrl, F11 keys
04:51 We get the output as


04:53 I am Parameterized Constructor
11 and
Raju


04:58 This is because this dot roll_number and this dot name refers to the instance variables roll_number and name.


05:12 And here roll_number and name are the arguments passed in the method.


05:19 To avoid confliction between local and instance variables we use this keyword.
05:29 Now we will see the use of this keywords for chaining of constructor.
05:34 We can use this keyword inside a constructor to call another one.


05:39 The constructors must be in the same class.


05:43 This is called explicit constructor invocation.
05:46 So let us come back to the Student class which we created.
05:53 Now Remove the comments.
06:28 Now comment the part to assign the instance variables to their values in the first two constructors.


06:52 Then Comment the part which creates the second and third objects.
07:08 Now let us first come to the constructor with no parameters.


07:16 After curly brackets type this within brackets 11 and semicolon.


07:28 Inside the second constructor type this within brackets 11 comma within double quotes Raju semicolon.


07:42 Now Save and Run the file. So press Ctrl,S and Ctrl , F11.
07:49 We get the output as


07:51 I am a Parameterized Constructor
07:54 I am a constructor with a single parameter
07:57 I am Default Constructor

11 and

Raju

08:02 Now, I will explain the output.


08:08 When the object is created, the respective constructor gets called.


08:13 The constructor here is the no argument constructor.


08:20 The control comes to the first line in the constructor.


08:24 It encounters the this within brackets 11 statement.


08:26 Hence it calls the constructor that accepts single integer argument.


08:36 Then the control comes to this within brackets 11 comma Raju.


08:44 Hence it calls the constructor that accepts 1 integer and 1 String argument.


08:53 So this constructor is executed and we get the output as I am Parameterized Constructor.


09:02 Now the instance variables will be initialized to 11 and Raju.As we have passed.


09:11 Now, the control goes back to the calling constructor.


09:16 So the second constructor gets executed.


09:19 We get the output as I am constructor with a single parameter.


09:25 Then, the control goes to the first constructor and executes it.


09:30 So we get output as I am a default constructor.


09:36 Then studentDetail method is executed.


09:42 So, we get 11 and Raju.
09:45 Now, let us make a small change.


09:47 Make the this statement the last one in the constructor.


10:00 We get a compiler error.


10:03 Hover the mouse over the error symbol.


10:06 We get the error as:


10:07 Constructor call must be the first statement in the constructor.
10:12 So we must make it the first line of the constructor.
10:16 So make it the first line of the constructor.


10:27 Now we can see that the error has gone.
10:31 So in this tutorial, we learnt


10:35 To use this keyword with fields.


10:38 To use this keyword for chaining constructors


10:41 How this keyword should be used within a constructor.



10:45 For self assessment, in the Employee class created earlier:


10:49 Create a constructor with two parameters
10:52 Use this keyword to initialize the instance variables .
10:57 Also create a constructor with 1 and no parameters.
11:01 Try chaining the constructors using this as explained in the tutorial.


11:07 To know more about the Spoken Tutorial Project
11:09 Watch the video available at the following link:http://spoken-tutorial.org/What_is_a_Spoken_Tutorial
11:12 It summarizes the Spoken Tutorial project


11:16 If you do not have good bandwidth, you can download and watch it


11:19 The Spoken Tutorial Project Team


11:23 Conducts workshops using spoken tutorials


11:26 Gives certificates for 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:40 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


11:55 Thus We have come to the end of this tutorial.



11:58 This is Arya Ratish signing off. Thanks for joining.

Contributors and Content Editors

Arya Ratish, Gaurav, Kaushik Datta, PoojaMoolya, Sandhya.np14, Sneha