Difference between revisions of "Java/C3/Static-Variables/English"

From Script | Spoken-Tutorial
Jump to: navigation, search
(Created page with "'''Title of script:''' Static Variables '''Author:''' Joms Antony '''Keywords:''' Static Variables, Class variables, Instance Variables, static keyword, final keyword, stati...")
 
 
(2 intermediate revisions by 2 users not shown)
Line 8: Line 8:
  
 
{| style="border-spacing:0;"
 
{| style="border-spacing:0;"
| style="background-color:#ffffff;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| <center>'''Visual Cue'''</center>
+
| style="background-color:#ffffff;border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| <center>'''Visual Cue'''</center>
| style="background-color:#ffffff;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| <center>'''Narration'''</center>
+
| style="background-color:#ffffff;border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| <center>'''Narration'''</center>
  
 
|-
 
|-
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''Slide 1'''
+
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''Slide 1'''
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Welcome to the Spoken Tutorial on '''Static Variables.'''
+
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Welcome to the Spoken Tutorial on '''Static Variables.'''
  
 
|-
 
|-
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''Slide 2'''
+
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''Slide 2'''
  
 
'''Learning Objectives'''
 
'''Learning Objectives'''
  
 +
* What are '''static variables'''
 +
* Creating''' static variables'''
 +
* How to use''' static variables'''
  
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| In this tutorial we will learn about:
+
 
 +
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| In this tutorial we will learn about:
  
 
* What are''' static variables'''
 
* What are''' static variables'''
 
* Creating''' static variables '''and
 
* Creating''' static variables '''and
* How to''' '''use''' static variables'''
+
* How to use''' static variables'''
 
+
 
+
  
 
|-
 
|-
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''Slide 3'''
+
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''Slide 3'''
  
 
'''Software Requirements'''
 
'''Software Requirements'''
  
 +
* Ubuntu 12.04
 +
* JDK 1.7
 +
* Eclipse 4.3.1
  
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Here we are using
+
 
 +
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Here we are using
  
 
* '''Ubuntu 12.04'''
 
* '''Ubuntu 12.04'''
 
* '''JDK 1.7 '''and
 
* '''JDK 1.7 '''and
 
* '''Eclipse 4.3.1'''
 
* '''Eclipse 4.3.1'''
 
 
  
 
|-
 
|-
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''Slide 4'''
+
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''Slide 4'''
  
 
'''Prerequisites'''
 
'''Prerequisites'''
  
 +
* Basic knowledge of '''Java''' and '''Eclipse IDE'''
 +
* Knowledge of classes, objects and instance variables
 +
* For relevant tutorials, please visit
 +
:http://www.spoken-tutorial.org
  
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| To follow this tutorial, you must have knowledge of basics of''' Java''' and''' Eclipse IDE.'''
 
  
You should also have the knowledge of''' classes, objects '''and''' instance variables''' in''' Java.'''
+
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| To follow this tutorial, you must have knowledge of basics of''' Java''' and''' Eclipse IDE.'''
 +
 
 +
You should also have the knowledge of''' classes, objects '''
 +
 
 +
and''' instance variables''' in''' Java.'''
  
 
If not, for relevant''' Java '''tutorials, please visit the link shown.
 
If not, for relevant''' Java '''tutorials, please visit the link shown.
  
 
|-
 
|-
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''Slide 5'''
+
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''Slide 5'''
  
 
'''What is a static variable?'''
 
'''What is a static variable?'''
  
 +
* A '''static variable''' is a variable which is associated
 +
: with the entire '''class'''
 +
* It is also called a '''class variable'''
 +
* It is declared using the '''static keyword'''
  
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| A''' static variable''' is a variable which is associated with the entire''' class.'''
 
  
 +
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| A''' static variable''' is a variable which is associated with the entire''' class.'''
  
It is also called a '''class variable.'''
+
 
 +
It is also called a''' class variable.'''
  
  
Line 70: Line 86:
  
 
|-
 
|-
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''Slide 6'''
+
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"|  
 
+
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| We have seen about '''static variable''' briefly in the earlier tutorial.
'''Static Variable-Example'''
+
 
+
 
+
(Proceed with the Slide)
+
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| We have seen about static variable briefly in the earlier tutorial.  
+
  
  
 
In this tutorial we will see it in detail.
 
In this tutorial we will see it in detail.
  
 +
|-
 +
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| In '''Eclipse IDE''', create a '''class StaticVariableDemo'''
  
Let us illustrate the usage of''' static variables''' with an example.
 
  
  
Consider a''' class''' created to represent student enrollments in an organization.
+
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now we will switch to''' Eclipse''' and create a new '''project''' called '''StaticVariableDemo'''.
  
  
This class contains the '''Name, Id , Branch''' and''' Total Count''' of students enrolled.
+
Inside this '''project''' we will create the necessary classes to demonstrate the usage of''' Static variables.'''
  
 +
|-
 +
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Right-click on '''src''' folder -> '''New '''-> '''Class'''
  
Now let us visualize what happens when student enrollments are done.
+
Type '''StudentEnroll''' and hit '''Enter'''
  
  
The''' Name''' of the first student is '''ADIL.'''
+
Go back to slide 8 and show the code
  
 +
Copy and paste the code
 +
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| So right click on '''src''' folder and click '''New '''-> '''Class''', and type the name of the class as''' StudentEnroll''' and press '''Enter'''.
  
'''Id''' is''' IT101. Branch''' is''' IT.'''
+
|-
 +
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"|
 +
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Let us illustrate the usage of''' static variables''' with an example.
  
 +
|-
 +
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''Slide 6'''
  
Now the''' Total Count''' is updated as 1.
+
'''Static Variable-Example'''
  
  
Similarly when the second student''' AMAL '''gets enrolled, '''Total Count''' is updated to 2.
+
(Proceed with the Slide)
 +
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Consider a''' class''' created to represent student enrollments in an organisation.
  
  
When the third student''' CAROL''' gets enrolled,''' Total Count''' is updated to 3.
+
This class contains the '''Name, Id , Branch''' and''' Total Count''' of students enrolled.
  
  
Now we can identify that the variable''' Total Count''' is common to all the objects and has a single value.
+
Now let us visualize what happens when student enrollments are done.
  
  
So the variable''' Total Count''' can be represented as a''' static variable'''.
+
By default '''Total Count''' is 0.
  
  
We can also see that the variables''' Name, Id''' and''' Branch''' have their own copies for each object.
+
The''' Name''' of the first student is '''ADIL.'''
  
  
Also they have specific values for each object.
+
'''Id''' is''' IT101.'''
  
 +
'''Branch''' is''' IT.'''
  
So these variables can be treated as''' instance variables.'''
 
  
 +
Now the''' Total Count''' is updated as 1.
  
  
 +
Similarly when the second student''' AMAL '''gets enrolled, '''Total Count''' is updated to 2.
  
|-
 
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''Slide 7'''
 
  
'''Instance Vs Static Variable'''
+
When the third student''' CAROL''' gets enrolled,''' Total Count''' is updated to 3.
  
  
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now let us explore the differences between''' instance variables''' and''' static variables.'''
+
Now we can identify that the variable''' Total Count''' is common to all the '''objects''' and has a single value.
  
  
Every object has its own copies for '''instance variables.'''
+
So the variable''' Total Count''' can be represented as a''' static variable'''.
  
  
'''Id, Name, Branch''' are examples of instance variables.
+
We can also see that the variables''' Name, Id''' and''' Branch''' have their own copies for each '''object'''.
  
  
'''Static variables''' in a class share a single
+
Also they have specific values for each '''object'''.
  
copy with all objects in that class.
 
  
 
+
So these variables can be treated as''' instance variables'''
'''Total Count''' is an example of static variable.
+
  
 
|-
 
|-
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''Slide 7(A)'''
+
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| public class StudentEnroll {
 
+
 
+
 
+
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| When a class is loaded
+
  
 +
private String id, name, branch;
  
A''' static variable''' occupies a single fixed memory location
+
public static int count=0;
  
 +
'''}'''
 +
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now let us look at the code representing the '''student enrollment class'''.
  
whereas
+
The name of the '''class''' is''' StudentEnroll.'''
  
 +
The '''instance variables''' are declared as''' id, name''' and''' branch.'''
  
'''Instance variables''' of each object occupy separate''' '''memory locations.
+
The variable''' count''' is declared as '''static''' since it is common to the whole '''class'''.
  
 
|-
 
|-
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''Slide 8'''
+
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''Slide 7(A)'''
  
 +
When a '''class''' is loaded-
  
 +
* A '''static variable''' in a '''class''' occupies
 +
:a single fixed memory location
 +
* '''Instance variables''' of each '''object''' occupy
 +
:separate memory locations
  
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now let us look at the sample code representing the student enrollment class.
 
  
The name of the class is''' StudentEnroll.'''
+
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| When a '''class''' is loaded a''' static variable''' occupies a single fixed memory location.
  
The instance variables are declared as''' id, name''' and''' branch.'''
 
  
The variable''' count''' is declared as static since it is common to the whole class.
+
Whereas '''Instance variables''' of each '''object''' occupy separate memory locations.
  
 
|-
 
|-
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| In Eclipse IDE, create a class StaticVariableDemo
+
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| click on''' source ->'''
  
 +
Select''' Generate Constructor using Fields'''
  
  
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now we will switch to''' Eclipse''' and create a new project called '''StaticVariableDemo'''.
+
Delete the''' super keyword'''
 +
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now click on''' Source ->''' and select''' Generate Constructor using Fields,'''
  
  
Inside this project we will create the necessary classes to demonstrate the usage of''' Static variables.'''
+
Delete the''' super keyword''' from the generated code.
  
 
|-
 
|-
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Right click on '''src''' folder -> '''new '''-> '''class''', type '''StudentEnroll''' and hit Enter
+
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''Constructor''' code
 
+
 
+
Go back to slide 8 and show the code
+
 
+
Copy and paste the code
+
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| So right click on '''src''' folder and click on '''new '''-> '''class''', and type the name of the class as''' StudentEnroll''' and Press '''Enter'''.
+
 
+
 
+
Now type the code which was shown in the earlier slide.
+
 
+
 
+
 
+
 
+
|-
+
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| click on''' source ->''' and select''' Generate Constructor using Fields'''
+
 
+
 
+
Delete the''' super''' keyword
+
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now click on''' source ->''' and select''' Generate Constructor using Fields.'''
+
 
+
 
+
Delete the''' super''' keyword from the generated code.
+
 
+
|-
+
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''Constructor''' code
+
  
  
Line 230: Line 229:
  
  
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| This '''constructor''' can initialize the values of the''' id, name''' and''' branch '''fields.
+
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| This '''constructor''' can initialise the values of the''' id, name''' and''' branch '''fields.
  
  
We also need to increment the value of the variable''' count''' by one every time an object is created.
+
We also need to increment the value of the variable''' count''' by one every time an '''object''' is created.
  
So inside the constructor type,
+
So inside the '''constructor''' type-
  
'''count ++ semicolon.'''
+
'''count ++ semicolon'''
  
 
|-
 
|-
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Type, public void showData()
+
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Type, public void showData()
  
 
{// Copy the code below   
 
{// Copy the code below   
Line 247: Line 246:
  
 
}  
 
}  
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now we will add a''' '''method '''showData'''( ) to this class to print the values of all the variables.
+
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now we will add a '''method showData'''( ) to this '''class''' to print the the values of all the variables.
  
 
So type''' public void showData( )'''  
 
So type''' public void showData( )'''  
  
within brackets type the following code to print the values of''' id, name, branch '''and '''total number of students enrolled'''.
+
within brackets type the following code to print the values of''' id, name, branch,''' total number of students enrolled.
  
 
|-
 
|-
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Right click on the '''default package,''' click new-> class and then type name as''' Demo'''.
+
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Right click on the '''default package,''' click new-> class  
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now right click on the '''default package''' click on '''new '''-> '''class''' and then type name as''' Demo.'''
+
 
 +
And then type name as''' Demo'''.
 +
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now right-click on the '''default package''' click '''New '''-> '''Class''' and then type name as''' Demo.'''
  
  
Inside this class we will have the '''main''' method.
+
Inside this '''class,''' we will have the '''main method'''.
  
  
Line 264: Line 265:
  
 
|-
 
|-
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Type
+
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| TypeSystem.out.println("Student Enrollment Data");
  
  
Line 271: Line 272:
  
 
Type s1.showData( );
 
Type s1.showData( );
 
 
Click on '''Run '''icon
 
  
  
Line 288: Line 286:
  
  
Click on '''Run '''icon
+
Click on '''Run''' icon
 
+
 
+
Highlight values
+
  
  
Line 303: Line 298:
  
  
Click on '''Run '''icon
+
Click on '''Run''' icon
 
+
 
+
Hightlight the values
+
  
  
Line 313: Line 305:
  
  
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now we need to print the Student Enrollment data.
+
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now we need to print the '''Student Enrollment data'''.
  
  
Line 319: Line 311:
  
  
So type''' '''the following code.
+
So type''' StudentEnroll s1 equals new StudentEnroll'''
  
'''StudentEnroll s1 equals new StudentEnroll'''
 
  
 
+
Now we can pass the values of different '''arguments'''.
Now we can pass the values of different arguments.
+
  
  
Line 330: Line 320:
  
  
Now let us invoke the''' showData''' method to print the enrollment details. So type
+
Now let us invoke the''' showData''' method to print the enrollment details.  
 
+
  
'''s1.showData( )'''.
+
So type '''s1.showData( )'''
  
  
Now run the '''Demo''' program.
+
Now run the '''Demo''' program
  
  
Line 345: Line 334:
  
  
This is because we have created only 1 object.
+
This is because we have created only 1 '''object'''.
  
  
Now type the following code to create one more object''' s2.'''
+
Now type the following code to create one more '''object s2.'''
  
  
The''' showData''' method can be called once again using''' s2.'''
+
The''' showData method''' can be called once again using''' s2.'''
  
  
Line 363: Line 352:
  
  
Now create one more object''' s3.'''
+
Now create one more '''object s3.'''
  
  
Now Let us Invoke the''' showData''' method again using''' s3.'''
+
Now Let us Invoke the''' showData method''' again using''' s3.'''
  
  
Line 372: Line 361:
  
  
We can see that the values of the instance variables corresponding to''' s3''' get printed.
+
We can see that the values of '''instance variables''' corresponding to''' s3''' get printed.
  
  
Also note that the value of''' '''number of student enrollments is now updated to 3 in all the cases.
+
Also note that the value of''' number of student''' enrollments is now updated to 3 in all the cases.
  
  
Now we can understand that the value of the number of student enrollments is common to all the objects.
+
Now we can understand that value of number of student enrollments is common to all the '''objects'''.
  
 
|-
 
|-
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''Slide 9'''
+
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''Slide 9'''
  
 +
'''Static Variables - As Constants'''
  
 +
* The '''static modifier''' is also used
 +
:along with the''' final modifier'''
 +
* It is done to define a '''constant''' which is
 +
:common to the entire '''class'''
 +
* The names of '''constant variables''' are
 +
:spelled in upper-case letters
  
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Come back to slides.
 
  
 +
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Come back to slides.
  
The''' static''' modifier, is also used along with the final modifier.
 
  
 +
The''' static modifier''' is also used along with the '''final modifier'''.
  
It is done to define a''' constant''' which is common to the entire class.
 
  
 +
It is done to define a''' constant''' which is common to the entire '''class'''.
  
 
 
  
Conventionally, the names of such constant variables are spelled in uppercase letters.
+
Conventionally, the names of such '''constant variables''' are spelt in uppercase letters.
  
 
|-
 
|-
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''Slide 9(A)'''
+
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Come back to eclipse
 
+
 
+
 
+
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| If the name is composed of more than one word, the words are separated by '''an underscore.'''
+
 
+
 
+
As an Example, if all the students are getting enrolled to the same organisation say''' IITB'''.
+
 
+
 
+
It can be represented by using a constant static variable say''' ORG_NAME'''.
+
 
+
 
+
Usually we declare such constants
+
 
+
with a '''public''' visibility.
+
 
+
|-
+
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''Slide 10'''
+
 
+
 
+
 
+
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| A Static variable can be accessed
+
 
+
directly from another class by using its own
+
 
+
class name.
+
 
+
 
+
For Example:
+
 
+
StudentEnroll.ORG_NAME;
+
 
+
 
+
 
+
 
+
|-
+
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Come back to eclipse
+
  
  
Line 451: Line 409:
  
 
Point to '''ORGANISATION: IITB'''
 
Point to '''ORGANISATION: IITB'''
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now come back to eclipse.
+
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now come back to '''eclipse'''.
  
  
Open the '''StudentEnroll''' class and type the variable declaration as  
+
Open the '''StudentEnroll class''' and type the '''variable declaration''' as  
  
  
 
'''public static final String ORG_NAME = “IITB”;'''
 
'''public static final String ORG_NAME = “IITB”;'''
  
 
  
Now go to the '''Demo class '''and type the following code
+
As an example, if all the students are getting enrolled to the same organisation, say''' IITB'''.
  
  
Here you can see that '''ORG_NAME '''is accessed by using its class name '''StudentEnroll.'''
+
It can be represented by using a '''constant static variable''' say''' ORG_NAME.'''
  
'''  '''
 
  
Now run the '''Demo''' Program again.
+
If the name is composed of more than one word, the words are separated by an''' underscore.'''
  
We can see that the '''ORGANISATION''' name is getting printed as''' IITB.'''
+
 
 +
Usually we declare such '''constants''' with a '''public '''visibility.
  
 
|-
 
|-
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''Slide 10'''
+
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Click on '''Run''' icon
 +
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now go to the '''Demo class '''and type the following code.
  
Summary
 
  
 +
Here you can see that '''ORG_NAME '''is accessed by using its '''class''' name '''StudentEnroll.'''
  
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Let us summarize.
+
|-
 
+
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Click on '''Run''' icon
In this tutorial we have learnt about
+
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now run the '''Demo''' Program again.
 
+
* What is a static variable and when it is used
+
* How to create and invoke the static variables
+
 
+
  
 +
We can see that the '''ORGANISATION''' name is getting printed as''' IITB.'''
  
 
|-
 
|-
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''Slide 11'''
+
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''Slide 10'''
  
Assignment
+
Summary
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| As an Assignment.
+
  
 +
* What is a static variable and when it is used
 +
* How to create and invoke the static variables
  
Design a class''' CarService''' to represent a Car Service Station.
 
  
 +
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Let us summarize.
  
This class should contain variables to represent the following details.
+
In this tutorial we have learnt about
  
 +
* What is a '''static variable''' and when it is used
 +
* How to create and invoke the '''static variables'''
  
'''Name''' of the Service Station.
+
|-
 +
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''Slide 11'''
  
 +
Assignment
 +
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| As an Assignment
  
Car '''make''', '''model''' and '''reg. no''' - which are in for service.
 
  
 +
Design a '''class CarService''' to represent a Car Service Station.
  
'''No. of Cars in''' for Service.
 
  
 +
This '''class''' should contain variables to represent the following details:
  
Identify the instance variables and static variables.
 
  
 +
*'''Name''' of the Service Station
 +
*Car '''make''', '''model''' and '''reg. no''' - which are in for service
 +
*'''No. of Cars in''' for Service
 +
*Identify the '''instance variables''' and '''static variables'''
 +
*Declare them using suitable keywords
 +
*Define a''' constructor''' to initialise the values for Car '''make, model''' and '''regno'''
 +
*Define a '''method show( )''' to print the values of all the variables
  
Declare them using suitable keywords.
 
 
 
Define a''' constructor''' to initialize the values for Car make, model and regno.
 
 
 
Define a method''' show( )''' to print the values of all the variables.
 
 
 
Also create a''' Demo''' class containing the main method to verify the results.
 
  
 +
Also create a''' Demo class''' containing the '''main method''' to verify the results
  
 
i.e
 
i.e
 
+
*Create a few '''objects''' of''' CarService'''
 
+
*Invoke the''' show( ) method''' using these '''objects'''
Create a few objects of''' CarService.'''
+
*Also access the '''static variables''' directly using the '''class''' name.
 
+
 
+
Invoke the''' show( ) '''method using these objects.
+
 
+
 
+
Also access the static variables directly using the class name.
+
  
 
|-
 
|-
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''About Project'''
+
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''About Project'''
  
  
  
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| The video at the following link summarizes the Spoken Tutorial Project.
+
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| The video at the following link summarizes the Spoken Tutorial Project.
  
  
Line 546: Line 498:
  
 
|-
 
|-
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''About Workshops'''
+
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''About Workshops'''
  
  
  
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| The Spoken Tutorial Project Team
+
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| The Spoken Tutorial Project Team
  
Conducts workshops using spoken tutorials and
+
* Conducts workshops using spoken tutorials and
 +
* Gives certificates on passing the online tests
  
• Gives certificates on passing the online tests.
 
  
 
For more details, please write to us.
 
For more details, please write to us.
  
 
|-
 
|-
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''About NMEICT'''
+
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''About NMEICT'''
  
  
  
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Spoken Tutorial Project is funded by the NMEICT, MHRD, Government of India.
+
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Spoken Tutorial Project is funded by the NMEICT, MHRD, Government of India.
  
  
Line 569: Line 521:
  
 
|-
 
|-
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''Contributor slide'''
+
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''Contributor slide'''
  
  
  
| style="border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| This script has been contributed by:
+
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| This script has been contributed by:
  
Department of Information Technology, Amal Jyothi College of Engineering.
+
Department of Information Technology, Amal Jyothi College of Engineering
  
  

Latest revision as of 15:27, 12 January 2017

Title of script: Static Variables

Author: Joms Antony

Keywords: Static Variables, Class variables, Instance Variables, static keyword, final keyword, static constants, video tutorial


Visual Cue
Narration
Slide 1 Welcome to the Spoken Tutorial on Static Variables.
Slide 2

Learning Objectives

  • What are static variables
  • Creating static variables
  • How to use static variables


In this tutorial we will learn about:
  • What are static variables
  • Creating static variables and
  • How to use static variables
Slide 3

Software Requirements

  • Ubuntu 12.04
  • JDK 1.7
  • Eclipse 4.3.1


Here we are using
  • Ubuntu 12.04
  • JDK 1.7 and
  • Eclipse 4.3.1
Slide 4

Prerequisites

  • Basic knowledge of Java and Eclipse IDE
  • Knowledge of classes, objects and instance variables
  • For relevant tutorials, please visit
http://www.spoken-tutorial.org


To follow this tutorial, you must have knowledge of basics of Java and Eclipse IDE.

You should also have the knowledge of classes, objects

and instance variables in Java.

If not, for relevant Java tutorials, please visit the link shown.

Slide 5

What is a static variable?

  • A static variable is a variable which is associated
with the entire class
  • It is also called a class variable
  • It is declared using the static keyword


A static variable is a variable which is associated with the entire class.


It is also called a class variable.


It is declared using the static keyword.

We have seen about static variable briefly in the earlier tutorial.


In this tutorial we will see it in detail.

In Eclipse IDE, create a class StaticVariableDemo


Now we will switch to Eclipse and create a new project called StaticVariableDemo.


Inside this project we will create the necessary classes to demonstrate the usage of Static variables.

Right-click on src folder -> New -> Class

Type StudentEnroll and hit Enter


Go back to slide 8 and show the code

Copy and paste the code

So right click on src folder and click New -> Class, and type the name of the class as StudentEnroll and press Enter.
Let us illustrate the usage of static variables with an example.
Slide 6

Static Variable-Example


(Proceed with the Slide)

Consider a class created to represent student enrollments in an organisation.


This class contains the Name, Id , Branch and Total Count of students enrolled.


Now let us visualize what happens when student enrollments are done.


By default Total Count is 0.


The Name of the first student is ADIL.


Id is IT101.

Branch is IT.


Now the Total Count is updated as 1.


Similarly when the second student AMAL gets enrolled, Total Count is updated to 2.


When the third student CAROL gets enrolled, Total Count is updated to 3.


Now we can identify that the variable Total Count is common to all the objects and has a single value.


So the variable Total Count can be represented as a static variable.


We can also see that the variables Name, Id and Branch have their own copies for each object.


Also they have specific values for each object.


So these variables can be treated as instance variables

public class StudentEnroll {

private String id, name, branch;

public static int count=0;

}

Now let us look at the code representing the student enrollment class.

The name of the class is StudentEnroll.

The instance variables are declared as id, name and branch.

The variable count is declared as static since it is common to the whole class.

Slide 7(A)

When a class is loaded-

  • A static variable in a class occupies
a single fixed memory location
  • Instance variables of each object occupy
separate memory locations


When a class is loaded a static variable occupies a single fixed memory location.


Whereas Instance variables of each object occupy separate memory locations.

click on source ->

Select Generate Constructor using Fields


Delete the super keyword

Now click on Source -> and select Generate Constructor using Fields,


Delete the super keyword from the generated code.

Constructor code


public StudentEnroll(String id, String name, String branch) {

this.id = id;

this.name = name;

this.branch = branch;

count++;

}


This constructor can initialise the values of the id, name and branch fields.


We also need to increment the value of the variable count by one every time an object is created.

So inside the constructor type-

count ++ semicolon

Type, public void showData()

{// Copy the code below

System.out.println(id+" " +name+" "+branch+" "+count);

}

Now we will add a method showData( ) to this class to print the the values of all the variables.

So type public void showData( )

within brackets type the following code to print the values of id, name, branch, total number of students enrolled.

Right click on the default package, click new-> class

And then type name as Demo.

Now right-click on the default package click New -> Class and then type name as Demo.


Inside this class, we will have the main method.


So type main and then press ctrl+space to generate the main method.

TypeSystem.out.println("Student Enrollment Data");


StudentEnroll s1=new StudentEnroll("IT101","ADIL","IT");


Type s1.showData( );


Highlight the values of s1


Highlight 1


StudentEnroll s2=new StudentEnroll("EC101","AMAL","EC");


copy and paste, s2.showData();


Click on Run icon


Highlight 2


StudentEnroll s3=new StudentEnroll("CS101","CAROL","CS");


Type, s3.showData();


Click on Run icon


Highlight 3


Now we need to print the Student Enrollment data.


We will create a few objects of StudentEnroll class to represent student enrollments.


So type StudentEnroll s1 equals new StudentEnroll


Now we can pass the values of different arguments.


Within brackets type IT101 as id, ADIL as name and IT as branch.


Now let us invoke the showData method to print the enrollment details.

So type s1.showData( )


Now run the Demo program


We can see that the values of the instance variables corresponding to s1 get printed.


Also note that the value of the number of student enrollments is 1.


This is because we have created only 1 object.


Now type the following code to create one more object s2.


The showData method can be called once again using s2.


Again run the Demo Program.


We can see that the values of the instance variables corresponding to s2 get printed.


Also note that the value of number of student enrollments is updated to 2 for both s1 and s2.


Now create one more object s3.


Now Let us Invoke the showData method again using s3.


Run the Demo Program again.


We can see that the values of instance variables corresponding to s3 get printed.


Also note that the value of number of student enrollments is now updated to 3 in all the cases.


Now we can understand that value of number of student enrollments is common to all the objects.

Slide 9

Static Variables - As Constants

  • The static modifier is also used
along with the final modifier
  • It is done to define a constant which is
common to the entire class
  • The names of constant variables are
spelled in upper-case letters


Come back to slides.


The static modifier is also used along with the final modifier.


It is done to define a constant which is common to the entire class.


Conventionally, the names of such constant variables are spelt in uppercase letters.

Come back to eclipse


In StudentEnroll class and type,

public static final String ORG_NAME = “IITB”;


Inside the Demo class, type System.out.println(“ORGANISATION:”+StudentEnroll.ORG_NAME);

Highlight ORG_NAME and StudentEnroll

Run the Demo program

Point to ORGANISATION: IITB

Now come back to eclipse.


Open the StudentEnroll class and type the variable declaration as


public static final String ORG_NAME = “IITB”;


As an example, if all the students are getting enrolled to the same organisation, say IITB.


It can be represented by using a constant static variable say ORG_NAME.


If the name is composed of more than one word, the words are separated by an underscore.


Usually we declare such constants with a public visibility.

Click on Run icon Now go to the Demo class and type the following code.


Here you can see that ORG_NAME is accessed by using its class name StudentEnroll.

Click on Run icon Now run the Demo Program again.

We can see that the ORGANISATION name is getting printed as IITB.

Slide 10

Summary

  • What is a static variable and when it is used
  • How to create and invoke the static variables


Let us summarize.

In this tutorial we have learnt about

  • What is a static variable and when it is used
  • How to create and invoke the static variables
Slide 11

Assignment

As an Assignment


Design a class CarService to represent a Car Service Station.


This class should contain variables to represent the following details:


  • Name of the Service Station
  • Car make, model and reg. no - which are in for service
  • No. of Cars in for Service
  • Identify the instance variables and static variables
  • Declare them using suitable keywords
  • Define a constructor to initialise the values for Car make, model and regno
  • Define a method show( ) to print the values of all the variables


Also create a Demo class containing the main method to verify the results

i.e

  • Create a few objects of CarService
  • Invoke the show( ) method using these objects
  • Also access the static variables directly using the class name.
About Project


The video at the following link summarizes the Spoken Tutorial Project.


Please download and watch it.

About Workshops


The Spoken Tutorial Project Team
  • Conducts workshops using spoken tutorials and
  • Gives certificates on passing the online tests


For more details, please write to us.

About NMEICT


Spoken Tutorial Project is funded by the NMEICT, MHRD, Government of India.


More information on this Mission is available at the link shown.

Contributor slide


This script has been contributed by:

Department of Information Technology, Amal Jyothi College of Engineering


This is Priya from IIT Bombay signing off. Thanks for joining.

Contributors and Content Editors

Nancyvarkey, Nirmala Venkat, Priyacst