《Thingking in Java》——构造器,this关键字
2017-05-05 10:49
330 查看
默认构造器
默认构造器是没有形式参数的构造器,当类中没有构造器时,编译器会自动的创建一个默认的构造器,而如果已经定义了任何形式的构造器,编译器则不再会默认帮你创建无参构造器。这就类似于:
当你没有提供任何构造器时,编译器会认为“你需要一个构造器,我帮助你创建一个吧”
当提供了构造器时,编译器会认为“你已经写了一个构造器,你知道自己在做什么,你是可以回避了默认构造器”
在子类的构造器中必须显示或者隐式的调用父类的构造器,(显示调用需要指明调用的是哪个父类构造器,而隐式调用默认调用父类无参构造器)父类构造器的多种形式,也就导致了子类构造器的调用方式的不同,总结如下:
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); //通 4000 过this关键字调用另一个构造器 //this(color); //只能调用一个构造器 this.color = color; } }
相关文章推荐
- thingking in Java test3.7练习(5)(6)
- thingKing in Java test3.8练习(7)扔硬币
- thingking in Java I/O系统
- thingking in Java 枚举类型
- thingking in Java 泛型
- Thingking in Java 源代码导入
- thingking in java test5.9练习(19)(20)(21)(22)
- thingking in Java 类型信息
- thingkinginjava--第21章 并发(二)
- 看完thingking in java 想向J2EE方向发展接下来该看看那些比较好
- thingking in java2.11练习(3)
- thingking in java 读书笔记---异常处理
- thingking in java 读书笔记---RTTI
- 2016-1-7-Thingking in Java 读书笔记(三)--操作符
- 2016-1-7-Thingking in Java 读书笔记(四)---控制执行流程
- thingking in Java 并发
- Thingking in Java 注册工厂
- IO 篇一 :理论篇 (java in thingking 4th阅读笔记)
- thingking in Java 容器深入研究
- thingking in java test2.11(11)