Java for Andriod 第二周学习总结
第四章
学习时遇到的问题或新知识点:
1. 构造方法。每个类至少有一个构造方法,且构造方法必须的名称必须与类名相同。
2. Varargs。允许方法拥有一个可变长度的参数列表。
3. 对象的内存分配。Book book; 内存留出一些字节用于存储引用变量book。Book book = new Book();创建了一个Book实例,将其存储在堆中,引用变量book像一个指针,可用于访问所引用的对象的成员。
4. Java包。可以将相关的类或具有相似功能的类分组到包中。使用关键字package后面跟着包名。包名对源文件的实际位置有影响的。
5. Java通过访问控制来支持封装。访问控制是由访问控制符来管理的。public、protected、default、private四种访问控制符分别从其他包中的类、同一包中的类、子类、同一个类这四个方面进行了被修饰的类的安全性访问控制。
6. 私有的字段可以作为一个非私有方法的返回值。
7. this关键字用于表示本类中的字段。
8. 使用final关键字可以使变量不可修改。
9. 使用静态成员可以使该成员所属类不被声明就可引用。
10. 方法重载。同名函数可通过不同参数来实现不同功能。
11. 静态工厂。通过私有的构造方法来创造不同的实例。
12. JVM执行一个类时,会按顺序来:加载、连接和初始化。
13. 静态初始化发生在一个类加载的时候,和实例化没有关系,相反实例初始化在创建一个对象的时候进行。
首先进行静态初始化,在任何实例化之前进行。
在构造函数中调用init()方法,在init方法中设置初始化语句。
第七章 继承
学习时遇到的问题或新知识点:
extends关键字扩展父类,子类和父类具有is-a关系,使用final关键字可以阻止这个类被拓展。
——向上强制转型:将子类的一个实例赋值给一个父类对象。 Parent parent = new child( );
——向下强制转型:将一个对象转换为继承下方的一个类,且父类已经指向一个子类的实例。Child child = (Child)parent;
使用super关键字可以显示的调用父类的方法,特别是构造方法。编程实现时遇到以下错误:
查询后说是因为编码原因,不懂~
第十章 接口和抽象类
学习时的问题与新知识点
1. 接口相当于一个不能被实例化的类,为服务提供者及其客户之间提供一个协议。接口也是创建对象的一个模版,定义了一组方法,Java类可以实现这些方法。
2. 接口的所有成员隐式的都是公有的。接口中的字段隐式公有静态final的,必须初始化。
3. 标记接口。
4. 基类。创建一个泛型的实现类,它使用默认的代码覆盖了接口中的抽象方法,实现类便可以拓展这个泛型类,覆盖想修改的抽象方法。
5. 抽象类。类似于接口,有部分实现的方法,通过子类拓展实现。
第十一章 多态
多态使得一个对象在一个方法被调用的时候,能够判断应该选择哪一个方法。——应用与接口或被拓展类应用的灵活性。
如图所示,将Manage实例赋值给Employee,向上强制转型,调用employee的work方法时,调用的是Manage 中的方法。也可以说是运行时的类型是Manager.
多态接口的应用: