A default constructor helps create an object without needing to give any details first.
Default constructor in Java
Start learning this pattern below
Jump into concepts and practice - no test required
or
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction
Syntax
Java
public ClassName() { // optional code }
If you do not write any constructor, Java adds this default one automatically.
You can write your own default constructor to add setup code.
Examples
Java
public class Car { public Car() { // This is a default constructor } }
Java
public class Book { private String title; public Book() { title = "Unknown"; } }
Sample Program
This program creates a Person object using the default constructor. It sets the name to "No name" and then prints it.
Java
public class Person { String name; // Default constructor public Person() { name = "No name"; } public void showName() { System.out.println("Name: " + name); } public static void main(String[] args) { Person p = new Person(); p.showName(); } }
Important Notes
If you add any constructor with parameters, Java will NOT add a default constructor automatically.
Always add a default constructor if you want to create objects without arguments after adding other constructors.
Summary
A default constructor lets you create objects without giving details.
Java adds it automatically if you write no constructors.
You can write your own to set default values or run code when objects are made.
Practice
1. What is a default constructor in Java?
easy
Solution
Step 1: Understand what a constructor is
A constructor is a special method used to create objects of a class.Step 2: Identify the default constructor
If no constructor is written, Java automatically provides a constructor with no parameters called the default constructor.Final Answer:
A constructor with no parameters that Java provides automatically if none is written. -> Option BQuick Check:
Default constructor = automatic no-parameter constructor [OK]
Hint: Default constructor has no parameters and is auto-created if missing [OK]
Common Mistakes:
- Thinking default constructor must be written manually
- Confusing default constructor with methods returning default values
- Believing default constructor runs at program end
2. Which of the following is the correct syntax for a default constructor in Java?
easy
Solution
Step 1: Recall constructor syntax
A constructor has the same name as the class and no return type.Step 2: Check each option
public ClassName() { } matches the class name and has no return type, so it's correct syntax.Final Answer:
public ClassName() { } -> Option CQuick Check:
Constructor syntax = class name + no return type [OK]
Hint: Constructor name = class name, no return type, parentheses empty [OK]
Common Mistakes:
- Adding void return type to constructor
- Using wrong parameter list syntax
- Using lowercase class name in constructor
3. What will be the output of this Java code?
class Car {
String model;
}
public class Test {
public static void main(String[] args) {
Car c = new Car();
System.out.println(c.model);
}
}medium
Solution
Step 1: Understand default constructor usage
No constructor is defined, so Java provides a default constructor that sets no initial values.Step 2: Check default value of uninitialized String
Instance variable 'model' is a String and defaults to null if not set.Final Answer:
null -> Option AQuick Check:
Uninitialized String = null by default [OK]
Hint: Uninitialized object fields default to null in Java [OK]
Common Mistakes:
- Expecting empty string instead of null
- Thinking default constructor sets values automatically
- Assuming compilation or runtime error
4. Identify the error in this Java class if any:
public class Book {
String title;
public Book() {
title = "Java Basics";
}
public Book(String title) {
title = title;
}
}medium
Solution
Step 1: Analyze the second constructor
It assigns parameter 'title' to itself, not to the instance variable.Step 2: Understand correct assignment
Use 'this.title = title;' to assign parameter to instance variable.Final Answer:
The second constructor does not set the instance variable correctly. -> Option AQuick Check:
Use 'this' to assign constructor parameters to fields [OK]
Hint: Use 'this.' to assign parameters to instance variables [OK]
Common Mistakes:
- Assigning parameter to itself instead of instance variable
- Missing default constructor (actually present)
- Adding return types to constructors
5. You want to create a class
Person that sets the name to "Unknown" by default if no name is given. Which constructor code correctly implements this using a default constructor?hard
Solution
Step 1: Check default constructor sets default value
public class Person { String name; public Person() { name = "Unknown"; } public Person(String name) { this.name = name; } }'s default constructor sets name to "Unknown" correctly.Step 2: Verify parameterized constructor sets name properly
public class Person { String name; public Person() { name = "Unknown"; } public Person(String name) { this.name = name; } } uses 'this.name = name;' to assign parameter to instance variable.Final Answer:
public class Person { String name; public Person() { name = "Unknown"; } public Person(String name) { this.name = name; } } -> Option DQuick Check:
Default constructor sets default value, parameterized sets given value [OK]
Hint: Default constructor sets default values; use 'this' for parameters [OK]
Common Mistakes:
- Assigning parameter to itself without 'this.'
- Not setting default value in default constructor
- Missing default constructor entirely
