Bird
Raised Fist0
Javaprogramming~10 mins

Why static is needed in Java - Test Your Understanding

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to declare a static variable in Java.

Java
public class Example {
    public [1] int count = 0;
}
Drag options to blanks, or click blank then click option'
Astatic
Bfinal
Cprivate
Dvoid
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'final' instead of 'static' which makes the variable constant, not shared.
Using 'void' which is only for methods, not variables.
2fill in blank
medium

Complete the code to call a static method from the class without creating an object.

Java
public class Calculator {
    public static int add(int a, int b) {
        return a + b;
    }

    public static void main(String[] args) {
        int sum = Calculator.[1](5, 3);
        System.out.println(sum);
    }
}
Drag options to blanks, or click blank then click option'
Asum
Badd
Ccalculate
Dtotal
Attempts:
3 left
💡 Hint
Common Mistakes
Trying to call the method without the class name or without creating an object.
Using a method name that does not exist.
3fill in blank
hard

Fix the error in accessing a non-static variable from a static method by completing the code.

Java
public class Counter {
    static int count = 0;

    public static void increment() {
        [1]++;
    }
}
Drag options to blanks, or click blank then click option'
Acount
Bthis.count
CCounter.count
Dstatic count
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'this' inside a static method causes an error.
Trying to access instance variables directly from static methods.
4fill in blank
hard

Fill both blanks to create a static method that returns the square of a number.

Java
public class MathUtil {
    public [1] int square(int num) {
        return num [2] num;
    }
}
Drag options to blanks, or click blank then click option'
Astatic
B*
C+
Dvoid
Attempts:
3 left
💡 Hint
Common Mistakes
Using '+' instead of '*' which adds instead of multiplies.
Not declaring the method as static.
5fill in blank
hard

Fill all three blanks to create a static block that initializes a static variable.

Java
public class Config {
    public static String setting;

    static [1] {
        setting = [2];
    }

    public static void main(String[] args) {
        System.out.println([3]);
    }
}
Drag options to blanks, or click blank then click option'
Ablock
B"default"
Csetting
Dstatic
Attempts:
3 left
💡 Hint
Common Mistakes
Trying to name the static block 'block' which is not a keyword.
Using the variable name incorrectly in the print statement.

Practice

(1/5)
1. Why do we use the static keyword in Java?
easy
A. To allow inheritance from other classes
B. To make a member belong to the class rather than any object
C. To make a method private
D. To create a new object automatically

Solution

  1. Step 1: Understand what static means

    The static keyword means the member belongs to the class itself, not to any individual object.
  2. Step 2: Compare with other options

    Creating objects, privacy, and inheritance are unrelated to static.
  3. Final Answer:

    To make a member belong to the class rather than any object -> Option B
  4. Quick Check:

    Static means class-level member = D [OK]
Hint: Static means shared by class, not by objects [OK]
Common Mistakes:
  • Thinking static creates objects
  • Confusing static with private access
  • Assuming static controls inheritance
2. Which of the following is the correct way to declare a static method in Java?
easy
A. public static void myMethod() {}
B. static void public myMethod() {}
C. public void static myMethod() {}
D. void static public myMethod() {}

Solution

  1. Step 1: Recall Java method declaration order

    In Java, the correct order is access modifier, then static, then return type, then method name.
  2. Step 2: Check each option

    public static void myMethod() {} follows this order: public static void myMethod(). Others have incorrect order.
  3. Final Answer:

    public static void myMethod() {} -> Option A
  4. Quick Check:

    Access modifier + static + return type = A [OK]
Hint: Remember: access modifier before static before return type [OK]
Common Mistakes:
  • Placing static after method name
  • Omitting static keyword
  • Wrong order of keywords
3. What will be the output of this code?
class Test {
    static int count = 0;
    Test() {
        count++;
    }
    public static void main(String[] args) {
        new Test();
        new Test();
        System.out.println(count);
    }
}
medium
A. Compilation error
B. 1
C. 0
D. 2

Solution

  1. Step 1: Understand static variable behavior

    The static variable count is shared by all objects of the class. Each time a new object is created, the constructor increments count.
  2. Step 2: Count object creations

    Two objects are created with new Test() twice, so count becomes 2.
  3. Final Answer:

    2 -> Option D
  4. Quick Check:

    Static count increments twice = 2 [OK]
Hint: Static variables keep shared count across all objects [OK]
Common Mistakes:
  • Thinking count resets for each object
  • Confusing static with instance variables
  • Expecting compilation error due to static
4. Identify the error in this code:
class Demo {
    static void show() {
        System.out.println("Hello");
    }
    public static void main(String[] args) {
        show();
        Demo d = new Demo();
        d.show();
    }
}
medium
A. Cannot call static method using object reference
B. Missing return type in show method
C. No error, code runs fine
D. Static method cannot access System.out

Solution

  1. Step 1: Check static method calls

    Static methods can be called using class name or object reference. Both show() and d.show() are valid.
  2. Step 2: Verify method declaration and usage

    The method show() has correct return type void and uses System.out.println correctly.
  3. Final Answer:

    No error, code runs fine -> Option C
  4. Quick Check:

    Static methods callable via object or class = B [OK]
Hint: Static methods can be called via object or class name [OK]
Common Mistakes:
  • Thinking static methods can't be called on objects
  • Assuming missing return type error
  • Believing static can't use System.out
5. You want to count how many times a method is called across all objects of a class. Which approach is best?
hard
A. Use a static variable incremented inside the method
B. Use an instance variable incremented inside the method
C. Create a new object each time and count in constructor
D. Use a local variable inside the method to count calls

Solution

  1. Step 1: Understand counting across all objects

    To count calls across all objects, the counter must be shared by all instances, so it must be static.
  2. Step 2: Evaluate other options

    Instance variables count per object, local variables reset each call, and creating new objects won't track method calls properly.
  3. Final Answer:

    Use a static variable incremented inside the method -> Option A
  4. Quick Check:

    Shared counter needs static variable = C [OK]
Hint: Use static variable to share count across all objects [OK]
Common Mistakes:
  • Using instance variable which counts per object only
  • Using local variable which resets every call
  • Counting in constructor unrelated to method calls
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard