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…

Tutorial 2 of 5 5 resources in this section

Section overview

5 resources

Explores 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.

Discuss Your Project

Related topics

Keep learning with adjacent tracks.

View category

HTML

Learn the fundamental building blocks of the web using HTML.

Explore

CSS

Master CSS to style and format web pages effectively.

Explore

JavaScript

Learn JavaScript to add interactivity and dynamic behavior to web pages.

Explore

Python

Explore Python for web development, data analysis, and automation.

Explore

SQL

Learn SQL to manage and query relational databases.

Explore

PHP

Master PHP to build dynamic and secure web applications.

Explore

Popular tools

Helpful utilities for quick tasks.

Browse tools

Favicon Generator

Create favicons from images.

Use tool

PDF to Word Converter

Convert PDF files to editable Word documents.

Use tool

XML Sitemap Generator

Generate XML sitemaps for search engines.

Use tool

JavaScript Minifier & Beautifier

Minify or beautify JavaScript code.

Use tool

Timestamp Converter

Convert timestamps to human-readable dates.

Use tool

Latest articles

Fresh insights from the CodiWiki team.

Visit blog

AI in Drug Discovery: Accelerating Medical Breakthroughs

In the rapidly evolving landscape of healthcare and pharmaceuticals, Artificial Intelligence (AI) in drug dis…

Read article

AI in Retail: Personalized Shopping and Inventory Management

In the rapidly evolving retail landscape, the integration of Artificial Intelligence (AI) is revolutionizing …

Read article

AI 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 article

AI 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 article

AI in Legal Compliance: Ensuring Regulatory Adherence

In an era where technology continually reshapes the boundaries of industries, Artificial Intelligence (AI) in…

Read article

Need help implementing this?

Get senior engineering support to ship it cleanly and on time.

Get Implementation Help