Bird
Raised Fist0
Javaprogramming~10 mins

Parameterized constructor in Java - Step-by-Step Execution

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
Concept Flow - Parameterized constructor
Start Object Creation
Call Constructor with Parameters
Assign Parameters to Fields
Object Initialized with Given Values
End
When creating an object, the constructor receives values (parameters) and assigns them to the object's fields to initialize it.
Execution Sample
Java
class Car {
  String model;
  int year;
  Car(String m, int y) {
    model = m;
    year = y;
  }
}
Defines a Car class with a parameterized constructor that sets model and year when a new Car is created.
Execution Table
StepActionParameter ValuesField AssignmentsResulting Object State
1Create new Car objectmodel = "Tesla", year = 2023model = "Tesla", year = 2023Car{model='Tesla', year=2023}
2Create new Car objectmodel = "Ford", year = 2018model = "Ford", year = 2018Car{model='Ford', year=2018}
3Create new Car objectmodel = "BMW", year = 2020model = "BMW", year = 2020Car{model='BMW', year=2020}
4No more objects created--Execution ends
💡 No more objects created, program ends
Variable Tracker
VariableStartAfter 1After 2After 3Final
car1.modelnull"Tesla""Tesla""Tesla""Tesla"
car1.year02023202320232023
car2.modelnullnull"Ford""Ford""Ford"
car2.year00201820182018
car3.modelnullnullnull"BMW""BMW"
car3.year00020202020
Key Moments - 3 Insights
Why do we pass values inside parentheses when creating a new object?
Because the parameterized constructor needs those values to set the object's fields, as shown in execution_table rows 1-3.
What happens if we don't provide the right number or type of parameters?
The code will not compile because the constructor expects specific parameters, as seen in the constructor signature in execution_sample.
Are the object's fields set before or after the constructor finishes?
They are set during the constructor execution, so after the constructor finishes, the object fields hold the passed values (execution_table rows 1-3).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the model of car2 after step 2?
A"Tesla"
B"Ford"
Cnull
D"BMW"
💡 Hint
Check the 'Parameter Values' and 'Field Assignments' columns for step 2 in execution_table.
At which step does the year field of car3 get assigned?
AStep 3
BStep 2
CStep 1
DStep 4
💡 Hint
Look at the 'Field Assignments' column for car3 in execution_table.
If we create a new Car with model "Audi" and year 2022, what will be the model of the new object?
A"Tesla"
B"BMW"
C"Audi"
Dnull
💡 Hint
The constructor assigns the passed model to the object's model field as shown in variable_tracker.
Concept Snapshot
Parameterized constructor syntax:
class ClassName {
  Type field;
  ClassName(Type param) {
    field = param;
  }
}

Used to initialize objects with specific values when created.
Full Transcript
A parameterized constructor is a special method in a class that takes inputs (parameters) to set initial values for the object's fields. When you create a new object and pass values inside parentheses, the constructor uses those values to assign to the object's variables. This way, each object can start with different data. The execution table shows step-by-step how each object is created with its own model and year. The variable tracker follows how each field changes from null or zero to the assigned values. Beginners often wonder why parameters are needed or when fields get set; these happen during the constructor call. If parameters are missing or wrong, the program won't compile. This concept helps create flexible and meaningful objects easily.

Practice

(1/5)
1.

What is the main purpose of a parameterized constructor in Java?

easy
A. To initialize an object with specific values when it is created
B. To create multiple objects without any initial values
C. To delete an object from memory
D. To define a method that returns a value

Solution

  1. Step 1: Understand constructor purpose

    A constructor is used to initialize objects when they are created.
  2. Step 2: Identify parameterized constructor role

    A parameterized constructor takes arguments to set initial values for the object's fields.
  3. Final Answer:

    To initialize an object with specific values when it is created -> Option A
  4. Quick Check:

    Parameterized constructor = initialize with values [OK]
Hint: Constructors with parameters set initial object values [OK]
Common Mistakes:
  • Confusing constructors with methods
  • Thinking constructors delete objects
  • Believing constructors don't take parameters
2.

Which of the following is the correct syntax for a parameterized constructor in Java?

public class Car {
    String model;
    int year;

    // Constructor here
}
easy
A. void Car(String model, int year) { this.model = model; this.year = year; }
B. public Car(String model, int year) { this.model = model; this.year = year; }
C. public Car() { model = ""; year = 0; }
D. public void Car(String model, int year) { model = model; year = year; }

Solution

  1. Step 1: Check constructor syntax

    A constructor has no return type and matches the class name exactly.
  2. Step 2: Verify parameter usage

    public Car(String model, int year) { this.model = model; this.year = year; } correctly uses parameters and assigns them to fields with this.
  3. Final Answer:

    public Car(String model, int year) { this.model = model; this.year = year; } -> Option B
  4. Quick Check:

    Constructor syntax = no return type + class name [OK]
Hint: Constructor name = class name, no return type [OK]
Common Mistakes:
  • Adding return type to constructor
  • Not using 'this' to assign fields
  • Using void or other return types
3.

What will be the output of the following Java code?

class Book {
    String title;
    int pages;

    Book(String title, int pages) {
        this.title = title;
        this.pages = pages;
    }

    void display() {
        System.out.println(title + ": " + pages + " pages");
    }
}

public class Main {
    public static void main(String[] args) {
        Book b = new Book("Java Basics", 250);
        b.display();
    }
}
medium
A. Java Basics: 250 pages
B. Java Basics pages
C. 250 pages
D. Compilation error

Solution

  1. Step 1: Understand constructor initialization

    The constructor sets title to "Java Basics" and pages to 250.
  2. Step 2: Analyze display method output

    The display() method prints the title, colon, pages, and "pages" text.
  3. Final Answer:

    Java Basics: 250 pages -> Option A
  4. Quick Check:

    Constructor sets fields, display prints them [OK]
Hint: Constructor sets fields, display prints combined string [OK]
Common Mistakes:
  • Ignoring 'this' keyword effect
  • Expecting only title or pages printed
  • Assuming syntax error without reason
4.

Identify the error in this Java class with a parameterized constructor:

public class Student {
    String name;
    int age;

    public Student(String n, int a) {
        name = n;
        age = a;
    }

    public Student() {
        name = "Unknown";
        age = 0;
    }

    public void Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
}
medium
A. No default constructor defined
B. Missing return type in parameterized constructor
C. The method named Student with void return type is not a constructor
D. Fields name and age are not declared

Solution

  1. Step 1: Check constructor definitions

    Constructors have no return type and match class name exactly.
  2. Step 2: Identify method named Student with void

    The method public void Student(String name, int age) is not a constructor but a method, which is confusing.
  3. Final Answer:

    The method named Student with void return type is not a constructor -> Option C
  4. Quick Check:

    Constructors have no return type [OK]
Hint: Constructors never have a return type, not even void [OK]
Common Mistakes:
  • Writing constructors with void return type
  • Confusing methods with constructors
  • Missing default constructor when needed
5.

Given the class below, what will be the output when creating two Employee objects with different parameters and printing their details?

class Employee {
    String name;
    double salary;

    public Employee(String name, double salary) {
        this.name = name;
        this.salary = salary;
    }

    public void printInfo() {
        System.out.println(name + " earns $" + salary);
    }
}

public class Test {
    public static void main(String[] args) {
        Employee e1 = new Employee("Alice", 50000);
        Employee e2 = new Employee("Bob", 60000);
        e1.printInfo();
        e2.printInfo();
    }
}
hard
A. Runtime error due to uninitialized fields
B. Alice earns $60000.0 Bob earns $50000.0
C. Compilation error due to missing default constructor
D. Alice earns $50000.0 Bob earns $60000.0

Solution

  1. Step 1: Analyze object creation with parameters

    Two Employee objects are created with names and salaries passed to the parameterized constructor.
  2. Step 2: Check printInfo output

    Each object's printInfo() prints the name and salary correctly.
  3. Final Answer:

    Alice earns $50000.0 Bob earns $60000.0 -> Option D
  4. Quick Check:

    Parameterized constructor sets fields, printInfo shows them [OK]
Hint: Each object holds its own values set by constructor [OK]
Common Mistakes:
  • Mixing up values between objects
  • Expecting errors without reason
  • Assuming default constructor is needed here