《Thingking in Java》——构造器,this关键字

默认构造器

  • 默认构造器是没有形式参数的构造器,当类中没有构造器时,编译器会自动的创建一个默认的构造器,而如果已经定义了任何形式的构造器,编译器则不再会默认帮你创建无参构造器。

这就类似于:
当你没有提供任何构造器时,编译器会认为“你需要一个构造器,我帮助你创建一个吧”
当提供了构造器时,编译器会认为“你已经写了一个构造器,你知道自己在做什么,你是可以回避了默认构造器”

  • 在子类的构造器中必须显示或者隐式的调用父类的构造器,(显示调用需要指明调用的是哪个父类构造器,而隐式调用默认调用父类无参构造器)父类构造器的多种形式,也就导致了子类构造器的调用方式的不同,总结如下:

1.super(参数)需要在子类构造方法的第一行,且只有一句。

2.(注:√:代表有或者可以,×代表没有或者不可以)

父类无参构造器父类有参构造器子类隐式调用父类默认构造器子类显示调用父类默认构造器子类显示调用父类其他构造器
×××
××
×××

this关键字

this关键字只能在方法内部使用,表示“调用方法的那个对象”的引用。(如果在方法内部调用本类的其他方法,则不需要使用this,直接调用即可)。

this关键字在构造器中的使用

  • 可以用this关键字调用本类的其他构造方法;
  • 只能调用一个构造器;
  • 除构造器外,编译器禁止在其他地方调用构造器。

  • 例子:

public class Flower {
    Strging corlor = "red";
    int num = 0;

    Flower(int num) {
        this.num = num;
    }

    Flower(int num, String color) {
        this(num);  //通过this关键字调用另一个构造器
        //this(color);  //只能调用一个构造器
        this.color = color;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值