Difference between constructor and method in Java

1. Introduction

In Java, both constructors and methods are blocks of code that execute to perform tasks. However, they serve different purposes. A constructor is a block of code that is invoked when an instance of an object is created. Its main role is to initialize the new object. A method, on the other hand, is a block of code that performs a specific task and is called upon by an object's reference.

2. Key Points

1. Constructors initialize new objects and have the same name as the class.

2. Methods perform specific functions and can have any name other than the class name.

3. Constructors are called automatically when a new object is created.

4. Methods must be invoked explicitly using an object reference.

5. Constructors do not have a return type, not even void.

6. Methods usually have a return type. If no data is returned, the return type is void.

3. Differences

Constructor Method
The constructor is a special block of code used to initialize a new object. The method is a block of code that performs a specific task and is a member of a class.
It must have the same name as the class in which it is defined.It can have any name and may or may not return a value.
The constructor does not have a return type, and it is not even void.The method must specify a return type, void if no value is returned.
The constructor is automatically called when a new instance of an object is created.The method must be explicitly called to perform the intended operation.
The constructor cannot be inherited, though a subclass can call the superclass constructor with super(). The method can be inherited and overridden in a subclass, depending on access modifiers.
A class can have multiple constructors, each with a different parameter list (constructor overloading). A class can have multiple methods with the same name but different parameter lists (method overloading).
Used solely for creating and initializing an object. Used to perform any action, including operations on objects after they are created.
If no constructor is explicitly defined, Java provides a default no-argument constructor. No default methods are provided; all methods must be explicitly defined.

4. Example

// Define a class with a constructor and a method
class Car {
    String model;
    int year;

    // Constructor to initialize the Car object
    public Car(String model, int year) {
        this.model = model;
        this.year = year;
    }

    // Method to display information about the Car
    public void displayInfo() {
        System.out.println(year + " " + model);
    }
}

public class Main {
    public static void main(String[] args) {
        // Step 1: Create an object using the constructor
        Car car = new Car("Toyota Camry", 2021);

        // Step 2: Call the method on the object
        car.displayInfo();
    }
}

Output:

2021 Toyota Camry

Explanation:

1. The Car class contains one constructor and one method.

2. The constructor Car() is called when a new Car object is created with the new keyword, initializing the model and year.

3. The displayInfo() method is called on the Car object to perform an action, which in this case is printing the car's details.

5. When to use?

- Use a constructor to initialize the state of an object when it is created.

- Use methods to define behaviors and actions that an object can perform.

Comments