JavaSE_构造器(构造方法)

引入–为什么需要构造器

我们在创建对象时,如果不能在创建对象时用某种办法进行属性赋值,那么只能在创建对象后一个一个去给成员变量赋值,当我们需要创建很多个对象时,这种办法显然是非常麻烦的。面对这样的需求,需要构造方法(constructor)也就是构造器来完成。
 

构造器语法

[访问权限修饰符] 类名(形参列表){
	// 构造方法体
}

语法的相关解释如下:

访问权限修饰符: 用来限制构造方法的访问权限,通常使用public。
类名: 类名的位置必须和当前类的类名完全一致(大驼峰命名)。
形参列表: 形参列表就是创建方法时将要传入的数据,按照需要设计形参列表,称为有参构造,也可以为空,称为无参构造。
构造方法体: 构造方法的方法体与类中成员方法类似,都有隐含的this传参,指向当前对象,也可以在构造器中使用this关键字。

 

构造器作用

构造器用来在创建对象的过程中,给对象中的成员变量赋值。为了更好的理解构造器的作用,要注意以下几点:

  1. 构造器不是用来创建对象的,创建对象是JVM完成的事情,构造器不过是在创建对象的过程中给对象中的成员变量赋值用的。
  2. 构造器是一个特殊的方法,它不由程序员直接主动调用,而是在创建对象的过程中,由JVM去调用,完成成员变量的赋值。
  3. 一个类中可以有多个构造器,其形参列表不同,构成方法的重载。在new创建对象时,需要传入实参列表。只要使用new关键字创建对象,一定会调用类的构造器,具体调用哪个构造器,由实参列表来判断。
  4. 构造器没有返回值类型,也不需要返回值。
  5. 使用构造器的赋值一定是准确的。在一次创建对象的过程中,构造器的代码,永远是最后执行的,只要使用构造器赋值,那么最终成员变量的取值一定是传入参数给出的值。但是,构造器赋值的准确性是由标准格式的构造器保证.

标准格式的构造器语法如下:

[访问权限修饰符] 类名(成员变量数据类型 成员变量名, ……){
	this.成员变量名 = 成员变量名;
	……
}

 

构造器定义

无参构造

在任何一个类中,如果没有显示直接地提供构造器,那么编译器在编译代码时,会自动加上一个无参构造器,称之为默认无参。

public 类名(){}

如果类中存在任何一个构造器,那么就不会再提供默认无参了。不过在写代码的时候,如果一个类有创建对象的需求,可以手动加上一个默认无参。

有参构造

要想主动使用构造器给成员变量赋值,就需要使用有参构造器,注意使用标准格式的构造器。

 

注意事项

  1. 构造器在创建对象过程中是最后执行的,实际上,在构造器执行的时候,对象就已经创建完毕了,执行构造器代码,不过是完成创建对象赋值的收尾工作。
  2. 构造器的作用就是赋值,最好就是标准格式,不要将业务代码写进去,如果成员变量的赋值确实需要一个复杂的逻辑,可以提取出一个方法,然后再构造器中调用,尽量保证构造器的代码简洁性。
  3. 构造器可以使用快捷键“alt+insert”生成,所生成为标准格式构造器,实际开发中建议使用快捷键自动生成。
  4. 同一个类中的多个构造器构成的是方法重载的关系,方法重载需要形参的数据类型不同,如果数据类型相同,仅仅是形参的名字不同,无法构成方法重载。
  5. 构造器和类加载的辨析:
    类加载的主体是类,new对象会触发类加载,但是一个类的类加载只会进行一次。
    构造器的的主体是对象,每一次new对象都会执行一次构造器。

 

构造器的互相调用

在构造器中,可以用this关键字去调用同类中的其他构造器,使用如下语法:this(实参列表);
根据实参列表的不同,去决定调用哪个构造器。比如:
 this(); 表示调用同类中的无参构造器
 this(int); 表示调用同类中的int构造器

要注意的是:

在一个构造器中,使用this表示调用其他构造器时,只能用一次,且必须写在构造器代码的第一行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值