Java 是一种纯粹的基于 OOPS 概念的编程语言。因此,在 Java 中,所有变量、数据和语句都必须存在于类中。这些类由构造函数和方法组成。方法和构造函数在很多方面彼此不同。

构造函数

构造函数用于初始化对象的状态。与方法一样,构造函数也包含在创建对象时执行的语句(即指令)集合。每次使用 new 关键字创建对象时,都会调用至少一个构造函数(可能是默认构造函数)来为同一类的数据成员分配初始值。

例子:

// Java Program to illustrate constructor

import java.io.*;

class Geek {
    int num;
    String name;

    // This would be invoked while an object
    // of that class created.
    Geek()
    {
        System.out.println("Constructor called");
    }
}

class YiibaiDemo {
    public static void main(String[] args)
    {
        // this would invoke default constructor.
        Geek geek1 = new Geek();

        // Default constructor provides the default
        // values to the object like 0, null
        System.out.println(geek1.name);
        System.out.println(geek1.num);
    }
}

运行结果:

Constructor called
null
0

方法

方法是执行某些特定任务并将结果返回给调用者的语句的集合。方法可以执行某些特定任务而不返回任何内容。方法允许我们在不重新键入代码的情况下重用代码。在 Java 中,每个方法都必须是某个类的一部分,这与 C、C++ 和 Python 等语言不同。

例子:

// Java Program to illustrate methods

import java.io.*;

class Addition {

    int sum = 0;

    public int addTwoInt(int a, int b)
    {

        // Adding two integer value.
        sum = a + b;

        // Returning summation of two values.
        return sum;
    }
}

class YiibaiDemo {
    public static void main(String[] args)
    {

        // Creating an instance of Addition class
        Addition add = new Addition();

        // Calling addTwoInt() method
        // to add two integer
        // using instance created
        // in above step.
        int s = add.addTwoInt(1, 2);

        System.out.println("Sum of two " + "integer values: " + s);
    }
}

运行结果:

Sum of two integer values: 3

构造函数和方法的区别:

构造函数 方法
构造函数是初始化新创建对象的代码块。 方法是语句的集合,在执行时会返回一个值。
构造函数可用于初始化对象。 方法由要执行的 Java 代码组成。
构造函数由系统隐式调用。 方法由程序员调用。
使用关键字 new 创建对象时调用构造函数。 通过方法调用调用方法。
构造函数没有返回类型。 方法必须有返回类型。
构造函数初始化一个不存在的对象。 方法对已创建的对象执行操作。
构造函数的名称必须与类的名称相同。 方法的名称可以是任何名称。
一个类可以有许多构造函数,但不能有相同的参数。 一个类可以有很多方法,但不能有相同的参数。
构造函数不能被子类继承。 方法可以被子类继承。