3.1.7 构造方法

本文详细介绍了Java中的构造方法,包括构造方法的定义、特点、重载和默认构造方法的作用。强调了构造方法在实例化对象时自动调用,以及在类中未定义构造方法时,系统会提供默认无参构造方法。同时,通过实例说明了构造方法重载的概念,即创建多个构造方法以供不同初始化需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

构造方法

构造方法(也被称为构造器)是类的一个特殊成员方法,在类实例化对象时自动调用。
构造方法是特殊的成员方法,在定义时,有以下几点需要注意:

  1. 构造方法的名称必须与类名一致。
  2. 构造方法名称前不能有任何返回值类型的声明。
  3. 不能在构造方法中使用return返回一个值,但是可以单独写return语句作为方法的结束。

例1:

class Student{
	public Student(){
		System.out.println("调用了无参构造方法。");
	}
}
public class Test{
	public static void main(String[] args){
		Student stu=new Student();
	}
}

上面的代码执行结果:

调用了无参构造方法。

在main方法中创建了一个Student类的对象stu,用new关键字进行实例化时,Student类的构造方法会被自动调用。

构造方法的重载

构造方法也是可以重载的。
例2:

class Student{
	private String name;
	private int age;
	//getter、setter方法略
	
	public Student(){
		System.out.println("调用了无参构造方法。");
	}
	public Student(String name,int age){
		this.name=name;
		this.age=age;
		System.out.println("调用了带两个参数的构造方法。");
	}
}
public class Test{
	public static void main(String[] args){
		Student stu1=new Student();
		Student stu2=new Student("陈明明",15);
	}
}

上面的代码执行结果:

调用了无参构造方法。
调用了带两个参数的构造方法。

上面的代码中,又定义了一个带两个参数的构造方法,当在main方法中创建对象stu2时就自动调用这个带参构造方法,并为两个属性赋值。构造方法的作用其实就是为了给属性赋初值。

默认构造方法

在Java中的每个类都至少有一个构造方法,如果在一个类中没有定义构造方法,系统会自动为这个类创建一个默认的构造方法,这个默认的构造方法没有参数,方法体中没有任何代码,即什么也不做。
例3:

class Student{
}
public class Test{
	public static void main(String[] args){
		Student stu=new Student();
	}
}

上面的Student类中虽然没有构造方法,但是下面的main方法中创建对象stu时并不会报错,因为系统会自动为Student类添加一个无参构造方法。
但是如果程序员已经为类添加了构造方法,系统就不会再自动添加这个默认的构造方法了。
例4:

class Student{
	private String name;
	private int age;
	//getter、setter方法略

	public Student(String name,int age){
		this.name=name;
		this.age=age;
		System.out.println("调用了带两个参数的构造方法。");
	}
}
public class Test{
	public static void main(String[] args){
		Student stu1=new Student();
		Student stu2=new Student("陈明明",15);
	}
}

上面这个例子会在创建对象stu1时报错,原因就是Student类中已经有了一个带参数的构造方法,系统就不会再自动为其添加无参构造方法,而下面的main方法中创建对象stu1时又需要调用无参构造方法,这时就会报错。
一般的做法是为类添加构造方法时,至少要定义一个无参构造方法。

注意:
构造方法一般是public级

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值