Bird
Raised Fist0
Javaprogramming~20 mins

Instance variables in Java - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
πŸŽ–οΈ
Instance Variable Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of this Java code using instance variables?
Consider the following Java class and main method. What will be printed when the program runs?
Java
public class Car {
    String color = "red";
    int year = 2020;

    public static void main(String[] args) {
        Car myCar = new Car();
        System.out.println(myCar.color + " " + myCar.year);
    }
}
Ared 2020
Bnull 0
Cred 0
Dnull 2020
Attempts:
2 left
πŸ’‘ Hint
Instance variables get default values if not initialized, but here they are initialized.
❓ Predict Output
intermediate
2:00remaining
What is the value of the instance variable after object creation?
Look at this Java class. What will be the value of 'count' for the object 'obj' after creation?
Java
public class Counter {
    int count;

    public Counter() {
        count = 5;
    }

    public static void main(String[] args) {
        Counter obj = new Counter();
        System.out.println(obj.count);
    }
}
ACompilation error
B0
Cnull
D5
Attempts:
2 left
πŸ’‘ Hint
Instance variables get default values but constructor can change them.
πŸ”§ Debug
advanced
2:30remaining
Why does this code print 0 instead of 10?
This Java code intends to set the instance variable 'score' to 10, but it prints 0. What is the cause?
Java
public class Game {
    int score;

    public void setScore(int score) {
        score = score;
    }

    public static void main(String[] args) {
        Game g = new Game();
        g.setScore(10);
        System.out.println(g.score);
    }
}
AThe instance variable 'score' is final and cannot be changed.
BThe method parameter 'score' shadows the instance variable; assignment affects only the parameter.
CThe code has a syntax error and does not compile.
DInstance variables cannot be assigned inside methods.
Attempts:
2 left
πŸ’‘ Hint
Look at variable names inside the method and how to refer to instance variables.
πŸ“ Syntax
advanced
1:30remaining
Which option correctly declares and initializes an instance variable?
Choose the correct way to declare and initialize an instance variable 'name' of type String in a Java class.
AString name = "Alice";
Bstatic String name = "Alice";
CString name();
DString name := "Alice";
Attempts:
2 left
πŸ’‘ Hint
Instance variables are declared inside the class but outside methods, without static keyword for instance scope.
πŸš€ Application
expert
2:30remaining
How many instance variables does this Java object have after creation?
Given the class below, how many instance variables does an object of this class have after creation?
Java
public class Person {
    String firstName;
    String lastName;
    int age;

    public Person(String firstName, String lastName) {
        this.firstName = firstName;
        this.lastName = lastName;
    }

    public static void main(String[] args) {
        Person p = new Person("John", "Doe");
    }
}
A0
B2
C3
D1
Attempts:
2 left
πŸ’‘ Hint
Count all instance variables declared in the class, regardless of initialization.

Practice

(1/5)
1. Which statement best describes instance variables in Java?
easy
A. They store data unique to each object of a class.
B. They are shared by all objects of a class.
C. They are declared inside methods only.
D. They must be static to be used.

Solution

  1. Step 1: Understand instance variable location

    Instance variables are declared inside a class but outside any method.
  2. Step 2: Understand instance variable behavior

    Each object has its own copy, so data is unique per object.
  3. Final Answer:

    They store data unique to each object of a class. -> Option A
  4. Quick Check:

    Instance variables = unique per object [OK]
Hint: Instance variables belong to objects, not the class itself [OK]
Common Mistakes:
  • Confusing instance variables with static variables
  • Thinking instance variables are declared inside methods
  • Assuming instance variables are shared across all objects
2. Which of the following is the correct way to declare an instance variable in Java?
easy
A. static int count;
B. int count() { }
C. public int count;
D. void count;

Solution

  1. Step 1: Identify valid instance variable syntax

    Instance variables are declared like normal variables inside a class but outside methods, e.g., public int count;.
  2. Step 2: Eliminate invalid options

    int count() { } is a method, C is static (not instance), D is invalid syntax.
  3. Final Answer:

    public int count; -> Option C
  4. Quick Check:

    Instance variable declaration = variable with type and name [OK]
Hint: Instance variables look like normal variable declarations outside methods [OK]
Common Mistakes:
  • Using parentheses which define methods, not variables
  • Adding static keyword which makes variable class-level
  • Missing type or using invalid syntax
3. What will be the output of this Java code?
class Car {
  String color = "Red";
}

public class Test {
  public static void main(String[] args) {
    Car c1 = new Car();
    Car c2 = new Car();
    c2.color = "Blue";
    System.out.println(c1.color);
  }
}
medium
A. Compilation error
B. Blue
C. null
D. Red

Solution

  1. Step 1: Understand instance variable values per object

    Each Car object has its own color. c1.color is "Red" initially.
  2. Step 2: Check changes to c2.color

    Changing c2.color to "Blue" does not affect c1.color.
  3. Final Answer:

    Red -> Option D
  4. Quick Check:

    Instance variables are unique per object [OK]
Hint: Changing one object's instance variable doesn't affect others [OK]
Common Mistakes:
  • Assuming changing c2.color changes c1.color
  • Confusing instance variables with static variables
  • Expecting null because of misunderstanding initialization
4. Find the error in this Java class related to instance variables:
public class Person {
  String name;
  int age;

  public void setName(String name) {
    name = name;
  }
}
medium
A. Instance variable 'name' is not assigned correctly in setName method.
B. Missing return type for setName method.
C. Instance variables must be static.
D. Class Person must have a constructor.

Solution

  1. Step 1: Analyze setName method parameter and assignment

    The method parameter name shadows the instance variable name.
  2. Step 2: Understand assignment effect

    Assignment name = name; assigns parameter to itself, not instance variable.
  3. Final Answer:

    Instance variable 'name' is not assigned correctly in setName method. -> Option A
  4. Quick Check:

    Use this.name = name; to assign instance variable [OK]
Hint: Use 'this.' to refer to instance variables inside methods [OK]
Common Mistakes:
  • Not using 'this' to distinguish instance variables
  • Assuming parameter assignment updates instance variable
  • Thinking constructor is mandatory for instance variables
5. You want to create a class Book where each book has a unique title and author. Which code correctly uses instance variables to achieve this?
public class Book {
  // Choose the correct instance variable declarations and constructor

  A) String title, author;
     public Book(String t, String a) {
       title = t;
       author = a;
     }

  B) static String title, author;
     public Book(String t, String a) {
       title = t;
       author = a;
     }

  C) String title, author;
     public Book() {
       title = "";
       author = "";
     }

  D) static String title, author;
     public Book() {
       title = "";
       author = "";
     }
hard
A. Static variables with constructor assigning values (shared by all).
B. Instance variables with constructor assigning unique values.
C. Instance variables with default constructor (no unique values).
D. Static variables with default constructor (shared and default).

Solution

  1. Step 1: Identify instance vs static variables

    Instance variables allow each object to have unique data; static variables share data across all objects.
  2. Step 2: Check constructor usage

    Instance variables with constructor assigning unique values. uses instance variables with a constructor that assigns unique values from parameters, matching the requirement.
  3. Final Answer:

    Instance variables with constructor assigning unique values. -> Option B
  4. Quick Check:

    Use instance variables + constructor for unique object data [OK]
Hint: Use instance variables with constructor to set unique object data [OK]
Common Mistakes:
  • Using static variables which share data across all objects
  • Not initializing instance variables with constructor parameters
  • Assuming default constructor sets unique values