发表于: 2017-03-14 23:27:44
2 1284
今天完成的事情:
进行下一章:构造器与垃圾收集器题,看了一半
1. 堆与栈:
a) 方法调用和局部变量运行在栈上;所有的对象运行在堆上;
b) 由于实例变量是在对象装声明的,所以实例变量生活在对象所属的空间上;
2. 构造函数:
a) 构造函数在初始化对象是运行,为一能调用构造函数的方法就是新建一个类;
b) 构造函数和方法的区别是构造函数没有返回类型;
c) 当我们new一个引用变量的时候,事实上如果我们没有编写构造函数,java虚拟机就会替我们自动生成一个空的构造函数:
Duck d = new Duck();
//系统就会自动生成下面
public Duck() {
}//注意,没有返回类型
d) 构造函数大多被使用来初始化对象状态。
3. 子类与父类运行时在内存中的状态:
当主函数调用子类的时候会根据继承状态依次创建各个对象。
4. 子类构造函数调用父类构造函数用super();
5. 从某个构造函数中调用重载版的另一个构造函数用this();
this()只能用在构造函数中,且必须是第一行,super()不能与this()同时使用。
明天计划的事情:学习本章剩下的内容,完成习题
遇到问题:
上面刚刚说到调用继承对象时会根据继承关系一次创建对象,一直到装机对象Object()
结果做习题的时候就给忘记了。
根据程序选择哪一个输出是正确的:
结果必须是:
因为虽然Hippo()进栈在先,但是要先创建Animial()才可以运行Hippo(),如此当然是Animal()先出结果了。。。
收获:
阅读要细心,善于运用,学习不是一蹴而就的事情。
评论