`

《Java核心技术(第八版)》笔记之第5章继承

 
阅读更多

5.1 类、超类和子类

1. Java中,所有的继承都是公有继承。

2. 关键字this的两个作用:一是引用隐式参数,二是调用该类的其他构造器;关键字super的两个作用:一是调用超类的方法,二是调用超类的构造器。(P146)

3.多态:一个变量可以引用多种实际类型的现象;动态绑定:在运行时能够自动地选择调用哪个方法的现象;静态绑定:private、static、final方法或者构造器。

4 如果超类方法是public,子类方法一定要声明为public。否则,编译器会把它解释为试图降低访问权限,编译会报错(P152)

5 如果将一个类声明为final,只有其中的方法自动地成为final,而不包括域(P153)

6 类即使不含抽象方法,也可以将其声明为抽象类(P157)

7 private---本类可见;public---所有类可见;protected---对包和所有子类可见;默认---包可见。(P160)

 

5.2 Object:所有类的超类

1. Java中,只有基本类型(primitive types)不是对象。所有数组类型都是扩展于Object类(P161)

2. new Employee[100],数组就有100个空位置可以使用;

   new ArrayList<Employee>(100),容量为100个元素的数组列表只是拥有保存100个元素的潜力。再重新分配之后可能会超过100。但是在完成初始化构造之后,数组列表不含有任何元素。

  在数组列表的大小不再发生变化后,可以调用trimToSize方法。这个方法将存储区域的大调整为当前元素数量所需要的存储空间数目。垃圾回收器将回收多余的存储空间。

 

5.4 对象包装器与自动打包

1. ArrayList<Integer>的效率远远低于int[]数组。

2. 比较Integer等对象是否相等,用equals方法

 

5.6 枚举类

1. 比较两个枚举类型时,永远不需要调用equals,直接使用"=="就可以了。

 

5.7 反射

1. 能够分析类能力的程序被称为反射

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics