0% found this document useful (0 votes)
66 views

Lab 07 - Java Static Keyword: Objective

The document discusses the static keyword in Java. It explains that static can be used with variables, methods, blocks, and nested classes. Static variables and methods belong to the class rather than objects, and static variables only have one copy in memory. The document provides examples of using static with variables and methods, and how static variables save memory compared to instance variables. Rules for static methods are also outlined.

Uploaded by

AHSAN AZIZ
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
66 views

Lab 07 - Java Static Keyword: Objective

The document discusses the static keyword in Java. It explains that static can be used with variables, methods, blocks, and nested classes. Static variables and methods belong to the class rather than objects, and static variables only have one copy in memory. The document provides examples of using static with variables and methods, and how static variables save memory compared to instance variables. Rules for static methods are also outlined.

Uploaded by

AHSAN AZIZ
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Department of Electrical Engineering Military College of Signals NUST

Lab 07 – Java static keyword


Objective:
In this lab we will understand concepts of static keyword.

The static keyword in Java is used for memory management mainly. We can apply static keyword
with variables, methods, blocks and nested classes. The static keyword belongs to the class than an
instance of the class.

The static can be:

1. Variable (also known as a class variable)


2. Method (also known as a class method)
3. Block
4. Nested class

1) Java static variable

If you declare any variable as static, it is known as a static variable.

 The static variable can be used to refer to the common property of all objects (which is not
unique for each object), for example, the company name of employees, college name of
students, etc.
 The static variable gets memory only once in the class area at the time of class loading.

Object Oriented Programming


Department of Electrical Engineering Military College of Signals NUST

Advantages of static variable

It makes your program memory efficient (i.e., it saves memory).

class Student{
int rollno;
String name;
String college="ITS";
}

Suppose there are 500 students in my college, now all instance data members will get memory each
time when the object is created. All students have its unique rollno and name, so instance data member
is good in such case. Here, "college" refers to the common property of all objects. If we make it static,
this field will get the memory only once.

Example of Static Variable

//Java Program to demonstrate the use of static variable


class Student{
int rollno;//instance variable
String name;
static String college ="ITS";//static variable
//constructor
Student(int r, String n){
rollno = r;
name = n;
}
//method to display the values
void display ()
{
System.out.println(rollno+" "+name+" "+college);
}
}
//Test class to show the values of objects
public class TestStaticVariable1{
public static void main(String args[]){
Student s1 = new Student(111,"Karan");
Student s2 = new Student(222,"Aryan");
//we can change the college of all objects by the single line of code
//Student.college="BBDIT";
s1.display();
s2.display();
}
}

Object Oriented Programming


Department of Electrical Engineering Military College of Signals NUST

Output:

111 Karan ITS


222 Aryan ITS

Program of the counter without static variable

In this example, we have created an instance variable named count which is incremented in the
constructor. Since instance variable gets the memory at the time of object creation, each object will
have the copy of the instance variable. If it is incremented, it won't reflect other objects. So each object
will have the value 1 in the count variable.

//Java Program to demonstrate the use of an instance variable


//which get memory each time when we create an object of the class.
class Counter{
int count=0;//will get memory each time when the instance is created

Counter(){
count++;//incrementing value
System.out.println(count);
}

public static void main(String args[]){


//Creating objects
Counter c1=new Counter();
Counter c2=new Counter();
Counter c3=new Counter();
}
}

Object Oriented Programming


Department of Electrical Engineering Military College of Signals NUST

Output:

1
1
1

Program of counter by static variable

As we have mentioned above, static variable will get the memory only once, if any object changes the
value of the static variable, it will retain its value.

//Java Program to illustrate the use of static variable which


//is shared with all objects.
class Counter2{
static int count=0;//will get memory only once and retain its value

Counter2(){
count++;//incrementing the value of static variable
System.out.println(count);
}

public static void main(String args[]){


//creating objects
Counter2 c1=new Counter2();
Counter2 c2=new Counter2();
Counter2 c3=new Counter2();
}
}

Output:

1
2
3

Object Oriented Programming


Department of Electrical Engineering Military College of Signals NUST

2) Java static method

If you apply static keyword with any method, it is known as static method.

 A static method belongs to the class rather than the object of a class.
 A static method can be invoked without the need for creating an instance of a class.
 A static method can access static data member and can change the value of it.

Example of static method


//Java Program to demonstrate the use of a static method.
class Student{
int rollno;
String name;
static String college = "ITS";
//static method to change the value of static variable
static void change(){
college = "BBDIT";
}
//constructor to initialize the variable
Student(int r, String n){
rollno = r;
name = n;
}
//method to display values
void display(){System.out.println(rollno+" "+name+" "+college);}
}
//Test class to create and display the values of object
public class TestStaticMethod{
public static void main(String args[]){
Student.change();//calling change method
//creating objects
Student s1 = new Student(111,"Karan");
Student s2 = new Student(222,"Aryan");
Student s3 = new Student(333,"Sonoo");
//calling display method
s1.display();
s2.display();
s3.display();
}
}

Output:111 Karan BBDIT


222 Aryan BBDIT
333 Sonoo BBDIT

Object Oriented Programming


Department of Electrical Engineering Military College of Signals NUST

Rules for the static method:

There are three main restrictions for the static method. They are:

1. They can only directly call other static methods.


2. They can only directly access static data.
3. They cannot refer to this or super in any way.

class A{
int a=40;//non static

public static void main(String args[]){


System.out.println(a);
}
}

POST LAB

Question 1:

Why is the Java main method static?

Question 2:

Can we execute a program without main() method?

Question 3:

What are Static nested classes. Explain with examples

Question 4:

When we use static variables and methods?

Object Oriented Programming

You might also like