构造器与this关键字

74 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第11天,点击查看活动详情

构造方法/构造器

概念:

完成对类的一个初始化,我们之前都是创建一个对象,然后再给对象里面的属性分别赋予一个初值。

基本语法:

[修饰符] 方法名(形参列表){
    方法体;
}

特点:

  • 构造器的修饰符可以默认(可以没有修饰符),也可以是protected、public、private;
  • 构造器没有返回值(可以从上面的基本语法清晰看出),注意此时也不能写void
  • 方法名必须和类名相同;

细节注意:

  1. 一个类可以有多个不同的构造器,即构造方法的重载;
  2. 构造器是对对象里属性的初始化,并不是创建一个对象;
  3. 在创建对象时,系统自动调用该类的构造方法; 4. 如果没有定义一个构造方法,那么系统没生成一个默认无参构造器(默认构造器),一旦定义了,默认无参构造器就会被覆盖,除非对它进行显示的定义。
  4. 大家可以将方法的重载和构造方法对比起来一起学习,后面还有方法的重写,不要将概念记岔了。

代码演示:

image.png

this关键字:

概念:

Java虚拟机给每一个对象分配一个this,代表当前对象,某个this指的就是new的那个对象,或者说是使用该构造方法的对象。当某方法的参数列表里的参数名和类的属性名相同时,就会使用到this。

简言之,哪个对象调用某个方法,this.方法中的this就表示哪个对象。

细节注意:

  1. this关键字可以访问本类的属性、方法、构造器;
  2. this可以区分当前类的属性和局部变量;
  3. 访问成员方法的语法:this.方法名(参数列表);
  4. this不能在类定义的外部使用,只能在类定义的方法中使用,因为它指向调用该方法的对象;
  5. 访问构造器的语法:this(参数列表)只在构造方法中使用