0% found this document useful (0 votes)
159 views2 pages

Static Methods and Fields Guide

Static methods and variables belong to the class rather than objects. There is only one copy shared across all instances. Static methods can access static fields but not instance fields or call instance methods. Instance methods can access static fields/methods but static cannot access instance. To call a static, use the class name and for instance use a reference variable.
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)
159 views2 pages

Static Methods and Fields Guide

Static methods and variables belong to the class rather than objects. There is only one copy shared across all instances. Static methods can access static fields but not instance fields or call instance methods. Instance methods can access static fields/methods but static cannot access instance. To call a static, use the class name and for instance use a reference variable.
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/ 2

IT1908

STATIC METHODS AND FIELDS instance variables, having static methods eliminates
the need for the caller to instantiate the object just to
Fundamentals call the method.
• A static variable or class variable is any field declared with o For a state shared by all instances of a class (like a
the static modifier; this tells the compiler that there is exactly counter): All instances must share the same state.
one (1) copy of this variable in existence, regardless of how Methods that merely use that state should be static
many times the class has been instantiated. as well.
Example: • To call a static method or variable, put the class name before
public class StaticVarDemo { the method or variable.
static int count = 0;
public void increment() { Example:
count++; class NumberClass {
} public static int num = 0;
public static void main(String args[]) { public static void displayNumber() {
StaticVarDemo obj1 = new StaticVarDemo(); System.out.print(num);
StaticVarDemo obj2 = new StaticVarDemo(); }
obj1.increment(); }
System.out.println("Obj1: count = "+ obj1.count);
public class NumberClassDemo {
obj2.increment();
System.out.println("Obj1: count = "+ obj1.count); public static void main(String[] args) {
System.out.println("Obj2: count = "+ obj2.count); System.out.print(NumberClass.num);
} NumberClass.displayNumber();
} }
Output: count is a static variable, while increment is a }
method whose task is to increase the value of the count Output: 00
variable by 1. In the main method, two (2) objects are created, • An instance of an object can be used to call a static method
named obj1 and obj2. obj1 invoked the increment method or update a static variable.
and showed the value of 1. Then, obj2 also invoked the Example:
increment method, resulting in obj1 having also the value of public class NumberClass {
2. This is because count is a static variable. Only a single public static int num = 0;
public static void main(String[] args) {
copy of a static variable is created and shared among all the
NumberClass.num = 4;
instances of the class. NumberClass nc1 = new NumberClass();
Explanation: NumberClass nc2 = new NumberClass();
• A static method belongs to the class rather than the object nc1.num = 6;
of a class. nc2.num = 5;
o It can be invoked without creating an instance of a System.out.print(NumberClass.num);
class. }
o It can access static members and change their }
values. Output: 5
• Static methods have two (2) main purposes: Explanation: There is only one (1) num variable since it is
o For utility or helper methods that don’t require any static.
object state: Since there is no need to access

02 Handout 1 *Property of STI


[email protected] Page 1 of 2
IT1908

Static versus Instance


• An instance variable or method is any variable or method
that is non-static.
o It requires an object of its class to be created before
it can be used or called.
• An instance variable is any variable that is declared outside
any method, constructor, or block.
Type Accessing Legal? How?
Static Another static Yes Using the class name
method method or variable
Static An instance method No
method or variable
Instance A static method or Yes Using the class name
method variable or reference variable
Instance Another instance Yes Using a reference
method method or variable variable

Example of a static method calling an instance method:


public class NumberClass {
public static int num = 0;
public static void main(String[] args) {
displayNumber(); //does not compile
}
public void displayNumber() {
System.out.print(num);
}
}
Example of a static method trying to access an instance variable:
public class NumberClass {
int num = 0;
public static void main(String[] args) {
displayNumber();
}
public static void displayNumber() {
System.out.print(num); //does not compile
}
}

Reference:
Oracle Docs (n.d.). Citing sources. Retrieved from
https://docs.oracle.com/javase/tutorial/java/javaOO/index.html

02 Handout 1 *Property of STI


[email protected] Page 2 of 2

You might also like