Java / Object-Oriented Programming in Java
Understanding Constructors and Overloading
This tutorial will guide you through the concept of constructors in Java. You'll also get to understand the concept of overloading and how you can use it to initialize objects dif…
Section overview
5 resourcesExplores OOP principles such as classes, objects, inheritance, polymorphism, and abstraction.
1. Introduction
Goal
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.
Learning Outcomes
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.
Prerequisites
A basic understanding of Java programming is required.
2. Step-by-Step Guide
Constructors
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
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.
3. Code Examples
Example 1: Basic Constructor
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.
Example 2: Constructor Overloading
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.
4. Summary
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.
5. Practice Exercises
Exercise 1
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.
Exercise 2
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.
Solution and Explanation
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.
Need Help Implementing This?
We build custom systems, plugins, and scalable infrastructure.
Related topics
Keep learning with adjacent tracks.
Popular tools
Helpful utilities for quick tasks.
Latest articles
Fresh insights from the CodiWiki team.
AI in Drug Discovery: Accelerating Medical Breakthroughs
In the rapidly evolving landscape of healthcare and pharmaceuticals, Artificial Intelligence (AI) in drug dis…
Read articleAI in Retail: Personalized Shopping and Inventory Management
In the rapidly evolving retail landscape, the integration of Artificial Intelligence (AI) is revolutionizing …
Read articleAI in Public Safety: Predictive Policing and Crime Prevention
In the realm of public safety, the integration of Artificial Intelligence (AI) stands as a beacon of innovati…
Read articleAI in Mental Health: Assisting with Therapy and Diagnostics
In the realm of mental health, the integration of Artificial Intelligence (AI) stands as a beacon of hope and…
Read articleAI in Legal Compliance: Ensuring Regulatory Adherence
In an era where technology continually reshapes the boundaries of industries, Artificial Intelligence (AI) in…
Read article