java面向对象(三) 构造方法

本文探讨了Java中的构造方法,包括其作用、定义规则和重载。构造方法用于在创建对象时初始化属性,其名称必须与类名相同且无返回值。当未显式定义构造方法时,Java会自动提供一个无参构造器。类的构造方法可以被重载,以适应不同的初始化需求。在编写代码时,应注意属性、构造方法和普通方法的定义顺序。构造方法在对象构造过程中的位置至关重要,是设置属性最终值的步骤。

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

先观察如下格式:

类名称 对象名称 = new 类名称() ;

上述格式为声明并实例化一个类的对象,其解释如下:

        类名称:要定义对象的数据类型

        对象名称:日后进行类属性或方法操作的标记变量

        new:开辟堆内存空间

       类名称():实例化对象,属于方法,即在类中提供一个和类名称相同的方法,此处实际上就表示了类中的构造方法,但是此构造方法和普通发发的区别在于:构造方法是在实例化对象时使用,而普通方法是在实例化对象产生后使用.

定义构造方法的要求:

        1.构造方法的名称和类名称保持一致

        2.构造方法不允许有返回值类型声明

        3.对象实例化操作一定需要构造方法的存在,所以如果类中没有明确定义构造方法,则会自动生成一个无参无返回值的构造方法,如果类中以明确定义了构造方法,则此无实际意义的构造方法不会自动生成,即:一个类中至少存在一个构造方法.

在类中可以明确定义一个构造方法,通过构造方法为类中的属性初始化.由于构造方法本质仍为方法,所以也可以进行重载(方法名称相同,参数的类型和个数不同).

范例:

class Person{
	private String name ;
	private int age ;
	public Person(){}
	public Person(String n){
		setName(n) ;
	}
	public Person(String n ,int a){
		setName(n) ;
		setAge(a) ;
	}
	public void tell(){
		System.out.println("姓名:" + name + ",年龄:" + age) ;
	}
	public void setName(String n){
		name = n ;
	}
	public void setAge(int a){
		if(a>=0 && a<=100){
			age = a ;
		}
	}
	public String getName(){
		return name ;
	}
	public int getAge(){
		return age ;
	}
}
public class Demo{
	public static void main(String args[]){
		Person per = new Person("张三") ;
		per.tell() ;
	}
}
执行结果如下:


在编写代码的时候,要注意编写的规范:

类中的属性,构造方法和普通方法的定义顺序为:首先定义属性,之后定义构造方法,最后定义普通方法

对于类中构造方法的重载,所有的重载方法要按照参数的个数由多到少(或由少到多)依次排列.

构造方法严格来讲属于整个对象构造过程的最后一步,对象的构造过程如下:

为对象分配内存空间→为其设置默认值→构造方法进行其他操作

即类中定义的属性的默认值,只有在构造执行完毕后,才可以真正赋值(←→见抽象类的注意点).


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值