Java构造方法

在Java中,构造方法是类似于方法的代码块。创建类的实例时调用它。在调用构造方法时,将在内存中分配对象的内存。

构造方法是一种特殊的方法,用于初始化对象。

每次使用new() 关键字创建对象时,都会至少调用一个构造方法。

如果类中没有可用的构造方法,它将调用默认构造方法。在这种情况下,Java编译器默认提供默认的构造方法。

Java中有两种类型的构造方法:无参构造方法带参构造方法

注意:之所以称为构造方法,是因为它在创建对象时构造值。不必为类编写构造方法。这是因为如果您的类没有构造方法,则Java编译器会创建一个默认构造方法。

1 创建Java构造方法的规则

构造方法的定义有两个规则:

  • 构造方法名称必须与其类名称相同
  • 构造方法不能声明返回类型
  • 构造方法不能是抽象的(abstract),静态的(static),最终的(final)和同步的(synchronized)。

注意:我们可以在声明构造方法时使用访问修饰符。它用于控制对象的创建。换句话说,我们可以在Java定义private,protected,public或default修饰的构造方法。

2 Java构造方法的类型

Java有两种类型的构造方法:

  • 无参构造方法(默认构造方法)
  • 带参构造方法

3 Java无参构造方法

没有任何参数的构造方法称为“无参构造函数”或者“默认构造方法”。

3.1 无参构造方法语法

<class_name>(){}  

3.2 无参构造方法示例


/**
 * 一点教程网 - http://www.yiidian.com
 */
//创建和调用无参构造方法的实例 
class Bike1{
    //创建无参构造
    Bike1(){
        System.out.println("Bike is created");
    }
    //主方法
    public static void main(String args[]){
        //调用无参构造方法
        Bike1 b=new Bike1();
    }
}  

输出结果:

Bike is created

注意:如果类中没有构造方法,则编译器会自动创建一个默认无参的构造方法。

4 Java带参构造方法

包含数量参数的构造方法称为带参构造方法

4.1 为什么要使用带参数构造方法

带参构造方法用于为不同的对象设置不同的值。当然,你也可以提供相同的值。

4.2 带参构造方法示例

在下面示例中,我们创建了具有两个参数的Student类的构造方法。构造方法中可以有任意数量的参数。

/**
 * 一点教程网 - http://www.yiidian.com
 */
//创建并使用带参的构造方法
class Student4{
    int id;
    String name;
    //创建带参构造方法
    Student4(int i,String n){
        id = i;
        name = n;
    }
    //打印对象数据的方法
    void display(){System.out.println(id+" "+name);}

    public static void main(String args[]){
        //创建对象并给对象赋值
        Student4 s1 = new Student4(111,"张三");
        Student4 s2 = new Student4(222,"李四");
        //调用方法,打印对象数据
        s1.display();
        s2.display();
    }
}

输出结果:

111 张三
222 李四

5 Java构造方法重载

在Java中,构造方法就像普通方法一样,但是没有返回类型。它也可以像Java方法一样重载。

Java中的构造方法重载是一种具有不同参数列表的构造方法的技术。它们的排列方式使每个构造方法执行不同的任务。编译器通过列表中的参数数量及其类型来区分它们。

5.1 构造方法重载的示例

/**
 * 一点教程网 - http://www.yiidian.com
 */
//Java构造方法重载示例
class Student5{
    int id;
    String name;
    int age;
    //创建两个参数的构造方法
    Student5(int i,String n){
        id = i;
        name = n;
    }
    //创建三个参数的构造方法
    Student5(int i,String n,int a){
        id = i;
        name = n;
        age=a;
    }
    void display(){System.out.println(id+" "+name+" "+age);}

    public static void main(String args[]){
        Student5 s1 = new Student5(111,"张三");
        Student5 s2 = new Student5(222,"李四",25);
        s1.display();
        s2.display();
    }
}

输出结果为:

111 张三 0
222 李四 25

6 Java的构造方法和普通方法的区别

构造方法和普通方法之间还有有许多差异的,下面列出了它们的区别。

Java构造方法 Java普通方法
构造方法用于初始化对象的状态。 普通方法用于公开对象的行为。
构造方法不能定义返回类型。 普通方法必须具有返回类型。
构造方法被隐式调用。 普通方法被显式调用。
如果您你的类中没有任何构造方法,则Java编译器会提供默认构造方法。 普通方法在任何情况下都不由编译器提供。
构造方法名称必须与类名称相同。 普通方法名称可以与类名称相同,也可以不同。

 

推荐好课