Bird
Raised Fist0
Javaprogramming~5 mins

Public access modifier in Java - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Public access modifier
O(n)
Understanding Time Complexity

Let's see how using the public access modifier affects the time it takes for a program to run.

We want to know if making something public changes how long the program works as it grows.

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


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

    public int sumArray(int[] numbers) {
        int sum = 0;
        for (int num : numbers) {
            sum += num;
        }
        return sum;
    }
}
    

This class has public methods to add two numbers and to sum all numbers in an array.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: The for-each loop that goes through each number in the array.
  • How many times: It runs once for every item in the input array.
How Execution Grows With Input

Explain the growth pattern intuitively.

Input Size (n)Approx. Operations
10About 10 additions
100About 100 additions
1000About 1000 additions

Pattern observation: The time to sum grows directly with the number of items. More items mean more work.

Final Time Complexity

Time Complexity: O(n)

This means the time to run the sumArray method grows in a straight line with the size of the input array.

Common Mistake

[X] Wrong: "Making methods public makes the program slower because anyone can access them."

[OK] Correct: The public access modifier only controls who can use the method, not how fast it runs. The speed depends on what the method does, not its access level.

Interview Connect

Understanding how access modifiers relate to performance shows you know both design and efficiency, a great skill to share in interviews.

Self-Check

"What if the sumArray method used recursion instead of a loop? How would the time complexity change?"

Practice

(1/5)
1. What does the public access modifier mean in Java?
easy
A. The class, method, or variable is accessible from anywhere in the program.
B. The class, method, or variable is accessible only within its own class.
C. The class, method, or variable is accessible only within its own package.
D. The class, method, or variable is accessible only to subclasses.

Solution

  1. Step 1: Understand the meaning of public

    The public modifier allows access from any other class in any package.
  2. Step 2: Compare with other access levels

    Other modifiers like private or protected restrict access, but public is fully open.
  3. Final Answer:

    The class, method, or variable is accessible from anywhere in the program. -> Option A
  4. Quick Check:

    Public means open access [OK]
Hint: Public means accessible from anywhere in the program [OK]
Common Mistakes:
  • Confusing public with private or protected
  • Thinking public restricts access to package only
  • Assuming public means only subclass access
2. Which of the following is the correct way to declare a public method in Java?
easy
A. void public myMethod() {}
B. public void myMethod() {}
C. private public void myMethod() {}
D. method public void myMethod() {}

Solution

  1. Step 1: Recall Java method declaration syntax

    The access modifier comes first, then the return type, then the method name and parentheses.
  2. Step 2: Check each option

    public void myMethod() {} follows correct syntax: public void myMethod() {}. Others have wrong order or invalid keywords.
  3. Final Answer:

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

    Access modifier first, then return type [OK]
Hint: Access modifier always comes before return type [OK]
Common Mistakes:
  • Placing 'public' after 'void'
  • Using invalid keywords like 'method'
  • Combining multiple access modifiers incorrectly
3. What will be the output of the following Java code?
public class Test {
    public int number = 5;
    public static void main(String[] args) {
        Test obj = new Test();
        System.out.println(obj.number);
    }
}
medium
A. 5
B. 0
C. Compilation error
D. Runtime error

Solution

  1. Step 1: Understand the public variable access

    The variable number is public and initialized to 5, so it can be accessed from main.
  2. Step 2: Trace the program output

    The main method creates an object and prints obj.number, which is 5.
  3. Final Answer:

    5 -> Option A
  4. Quick Check:

    Public variable accessed correctly prints 5 [OK]
Hint: Public variables can be accessed directly from objects [OK]
Common Mistakes:
  • Assuming default value 0 instead of initialized 5
  • Thinking public causes errors
  • Confusing static and instance variables
4. Identify the error in the following code snippet:
class Example {
    public int value;
}

public class Main {
    public static void main(String[] args) {
        Example ex = new Example();
        ex.value = 10;
        System.out.println(ex.value);
    }
}
medium
A. Class Example must be declared public to access its public variable.
B. Main class must not be public.
C. No error; code will compile and print 10.
D. Variable value must be private to be accessed.

Solution

  1. Step 1: Check class and variable access

    Class Example is package-private but accessible within the same package. Its public variable value can be accessed.
  2. Step 2: Verify main method usage

    Main creates Example object, assigns 10 to value, and prints it. This is valid.
  3. Final Answer:

    No error; code will compile and print 10. -> Option C
  4. Quick Check:

    Public variable accessible within same package [OK]
Hint: Public variables accessible within same package without public class [OK]
Common Mistakes:
  • Thinking class must be public to access public members
  • Confusing variable access with class access
  • Assuming private needed for access
5. You want to create a Java class with a public method that can be called from any other class, but the class itself should only be accessible within its package. Which of the following is correct?
hard
A. Declare both the class and method as public.
B. Declare the class as private and the method as public.
C. Declare the class as public and the method as private.
D. Declare the class without public and the method as public.

Solution

  1. Step 1: Understand class access modifiers

    Classes without public are package-private, so accessible only within the package.
  2. Step 2: Understand method access modifiers

    Methods declared public inside a package-private class are accessible from other classes in the same package.
  3. Step 3: Analyze options

    Declare the class without public and the method as public. matches the requirement: class package-private, method public. Declare both the class and method as public. makes class public (accessible everywhere). Declare the class as public and the method as private. hides method. Declare the class as private and the method as public. is invalid because classes cannot be private.
  4. Final Answer:

    Declare the class without public and the method as public. -> Option D
  5. Quick Check:

    Class package-private + public method = accessible in package [OK]
Hint: Class without public is package-private; method public means accessible inside package [OK]
Common Mistakes:
  • Thinking class can be private
  • Assuming public class needed for public method
  • Confusing method access with class access
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