A static method belongs to the class rather than any object instance. It can be called without creating an object of the class.
Click to reveal answer
beginner
How do you call a static method in Java?
You call a static method using the class name followed by a dot and the method name, like <code>ClassName.methodName()</code>.
Click to reveal answer
intermediate
Can a static method access instance variables directly?
No, static methods cannot access instance variables directly because they do not belong to any object instance.
Click to reveal answer
beginner
Why use static methods? Give a real-life example.
Static methods are useful for actions that don't need object data. For example, a Math.sqrt() method calculates square roots without needing a Math object.
Click to reveal answer
advanced
What happens if you try to override a static method in Java?
Static methods cannot be overridden. If a subclass defines a static method with the same signature, it hides the superclass method instead.
Click to reveal answer
How do you declare a static method in Java?
ABy adding the keyword <code>static</code> before the return type
BBy adding the keyword <code>final</code> before the method name
CBy adding the keyword <code>void</code> before the method name
DBy adding the keyword <code>public</code> after the method name
✗ Incorrect
Static methods are declared by placing the static keyword before the return type, for example: public static void myMethod().
Which of these can a static method access directly?
AInstance variables
BInstance constructors
CNon-static methods
DStatic variables
✗ Incorrect
Static methods can directly access static variables because both belong to the class, but cannot access instance variables or methods directly.
What is the correct way to call a static method named calculate in class Utils?
AUtils.calculate()
Bnew Utils().calculate()
Ccalculate()
Dthis.calculate()
✗ Incorrect
Static methods should be called using the class name, like Utils.calculate(), without creating an object.
Can static methods be overridden in Java?
AOnly if marked final
BYes, like instance methods
CNo, they can only be hidden
DOnly in abstract classes
✗ Incorrect
Static methods cannot be overridden. If a subclass defines a static method with the same signature, it hides the superclass method.
Which keyword is NOT related to static methods?
Afinal
Bnew
Cvoid
Dstatic
✗ Incorrect
The keyword new is used to create objects, not related to declaring or calling static methods.
Explain what a static method is and how it differs from an instance method.
Think about whether you need an object to use the method.
You got /4 concepts.
Describe a situation where using a static method is better than an instance method.
When the method does not depend on object state.
You got /4 concepts.
Practice
(1/5)
1. Which statement about static methods in Java is true?
easy
A. Static methods belong to the class and can be called without creating an object.
B. Static methods can only be called on objects of the class.
C. Static methods can access instance variables directly.
D. Static methods must always return void.
Solution
Step 1: Understand what static means
Static methods belong to the class itself, not to any object instance.
Step 2: Check method calling rules
Static methods can be called using the class name without creating an object.
Final Answer:
Static methods belong to the class and can be called without creating an object. -> Option A
Quick Check:
Static method = class method call [OK]
Hint: Static methods use class name, no object needed [OK]
Common Mistakes:
Thinking static methods need an object to call
Assuming static methods access instance variables
Believing static methods must return void
2. Which of the following is the correct way to declare a static method in Java?
easy
A. public void static myMethod() {}
B. static void public myMethod() {}
C. public static void myMethod() {}
D. void static public myMethod() {}
Solution
Step 1: Recall Java method declaration order
In Java, the correct order is access modifier, then static keyword, then return type, then method name.
Step 2: Match the correct syntax
public static void myMethod() {} follows this order: public static void myMethod() {}.
Final Answer:
public static void myMethod() {} -> Option C
Quick Check:
Access + static + return type = correct order [OK]
Hint: Remember: access modifier before static keyword [OK]
Common Mistakes:
Placing static after return type
Omitting access modifier
Mixing order of keywords
3. What will be the output of the following code?
public class Test {
static int count = 0;
static void increment() {
count++;
}
public static void main(String[] args) {
increment();
increment();
System.out.println(count);
}
}
medium
A. 2
B. 1
C. Compilation error
D. 0
Solution
Step 1: Understand static variable and method behavior
The static variable count starts at 0 and is shared by all calls.
Step 2: Trace method calls
Each call to increment() increases count by 1. Called twice, count becomes 2.
Final Answer:
2 -> Option A
Quick Check:
Two increments = count 2 [OK]
Hint: Static variables keep value across static method calls [OK]
Common Mistakes:
Thinking count resets each call
Confusing static and instance variables
Expecting compilation error due to static usage
4. Identify the error in the following code snippet:
public class Example {
int x = 5;
static void printX() {
System.out.println(x);
}
}
medium
A. Missing return type for printX method.
B. Cannot use instance variable x inside static method printX.
C. Static methods cannot have print statements.
D. Class Example must be declared static.
Solution
Step 1: Check static method access rules
Static methods cannot access instance variables directly because they belong to the class, not an object.
Step 2: Identify the error in code
Method printX() tries to print instance variable x without an object, causing an error.
Final Answer:
Cannot use instance variable x inside static method printX. -> Option B
Hint: Static methods can't use instance variables directly [OK]
Common Mistakes:
Assuming static methods can access instance variables
Thinking static methods need return type fix
Believing classes must be static
5. You want to create a utility class MathUtils with a static method square(int n) that returns the square of a number. Which implementation is correct?
hard
A. public class MathUtils { public int square(int n) { return n * n; } }
B. public class MathUtils { static void square(int n) { return n * n; } }
C. public static class MathUtils { public int square(int n) { return n * n; } }
D. public class MathUtils { public static int square(int n) { return n * n; } }
Solution
Step 1: Identify static method requirements
The method should be static to call without creating an object.
Step 2: Check method signature and return type
Method must return int and be declared static with proper access modifier.
Step 3: Validate options
public class MathUtils { public static int square(int n) { return n * n; } } correctly declares a public static method returning int.
Final Answer:
public class MathUtils { public static int square(int n) { return n * n; } } -> Option D
Quick Check:
Static method with return type and public access [OK]
Hint: Utility methods should be static with correct return type [OK]
Common Mistakes:
Omitting static keyword
Using void return type when returning value
Declaring class static incorrectly
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.