This tutorial will guide you through understanding constructors in Java and the concept of overloading. We will explore how these can be used to initialize objects differently.
After completing this tutorial, you'll be able to:
- Understand what constructors are and how they work in Java.
- Grasp the concept of overloading and how to use it in constructors.
- Write and interpret Java code that includes constructors and overloaded methods.
A basic understanding of Java programming is required.
In Java, a constructor is a block of code that initializes the newly created object. A constructor resembles an instance method in Java but it's not a method as it doesn't have a return type.
Overloading is a feature that allows us to have more than one method with the same name in a class, but with different parameters. This is particularly useful when we want to initialize an object in different ways.
public class MyClass {
int x;
// This is a constructor. It has the same name as the class and no return type.
MyClass() {
x = 10;
}
}
class Main {
public static void main(String[] args) {
MyClass obj = new MyClass(); // This will call the constructor
System.out.println(obj.x); // This will print 10
}
}
In this example, MyClass()
is a constructor. When we create an object of MyClass
, this constructor is called, and the print statement outputs 10
.
public class Rectangle {
int width;
int height;
// Constructor with no parameters
Rectangle() {
width = 0;
height = 0;
}
// Constructor with two parameters
Rectangle(int w, int h) {
width = w;
height = h;
}
}
class Main {
public static void main(String[] args) {
Rectangle obj1 = new Rectangle(); // This will call the first constructor
Rectangle obj2 = new Rectangle(5, 10); // This will call the second constructor
System.out.println("Rectangle 1 dimensions: " + obj1.width + "x" + obj1.height); // This will print 0x0
System.out.println("Rectangle 2 dimensions: " + obj2.width + "x" + obj2.height); // This will print 5x10
}
}
In this example, we're overloading the constructor of the Rectangle
class. Depending on the parameters when creating a new Rectangle
object, a different constructor will be called.
In this tutorial, we covered the concept of constructors in Java and how they are used to initialize an object. We also discussed the concept of overloading, which allows us to have different ways of initializing an object.
Create a class named Circle
with one constructor to initialize the radius to 0
, and another constructor to initialize the radius to any value passed in.
Create a class named Student
with three constructors:
1. A constructor that takes no arguments and initializes the student's name to "Unknown" and age to 0
.
2. A constructor that takes a String
argument and initializes the student's name to the passed value and age to 0
.
3. A constructor that takes a String
and an int
argument and initializes the student's name and age to the passed values.
Exercise 1:
public class Circle {
double radius;
Circle() {
radius = 0;
}
Circle(double r) {
radius = r;
}
}
In this solution, we create two constructors for the Circle
class. The first constructor sets the radius to 0
while the second constructor sets the radius to any number passed to it.
Exercise 2:
public class Student {
String name;
int age;
Student() {
name = "Unknown";
age = 0;
}
Student(String n) {
name = n;
age = 0;
}
Student(String n, int a) {
name = n;
age = a;
}
}
For this solution, we create three constructors for the Student
class. The first constructor sets the student's name to "Unknown" and age to 0
. The second constructor sets the name to a passed value and age to 0
. The third constructor sets both the name and age to the passed values.