《Thinking In Java》- 读书笔记<2>
第五章 隐藏实施过程
5.1 包:库文件
一般用Import 导入一个完整的库 ,获取一个包,这个和C#中的 using 类似;
example:
import java.util.*;
Java 创建源码的时候,通常叫做“编译单元”或是“翻译单元”;在编译单元内部,必须有一个public类,这个类要和文件名一致,并且每个编译单元只能有一个Public 类,否则编译失败;
包里面的关键为:package
example: package MyClass;
5.2 访问权限
public 、private、protect、friendly(友好的;默认)
friendly:当前包内的其他所有类都能访问“友好的”成员
第六章 继承
6.1 Final 关键字(C#一致)
final 关键字的三种应用场合:数据、方法以及类
6.1.1 final 数据
(1) 编译期常数,它永远不会改变
(2) 在运行期初始化的一个值,我们不希望它发生变化
6.1.2 Final 方法
6.1.3 final 类
6.2 继承的关键为:extends
第七章 多态性
(有点佩服这本书的翻译 “重载”在JAVA中叫“过载”?!还是就叫过载)
重载、重写、接口 、抽象类
第八章 容器
8.1集合的类型
8.1.1 Verctor
Vector 的用法很简单,这已在前面的例子中得到了证明。尽管我们大多数时候只需用addElement()插入对
象,用elementAt()一次提取一个对象,并用elements()获得对序列的一个“枚举”。
Example:
Vector<Object> vc = new Vector<Object>(); for (int i = 0; i < 10; i++) { vc.addElement(new Example_01()); } System.out.println(vc);
8.1.2 B i t S e t
BitSet 实际是由“二进制位”构成的一个Vector。如果希望高效率地保存大量“开-关”信息,就应使用
BitSet。它只有从尺寸的角度看才有意义;如果希望的高效率的访问,那么它的速度会比使用一些固有类型
的数组慢一些。
8.1.3 Stack
Stack 有时也可以称为“后入先出”(LIFO)集合。换言之,我们在堆栈里最后“压入”的东西将是以后第
一个“弹出”的。和其他所有Java 集合一样,我们压入和弹出的都是“对象”,所以必须对自己弹出的东西
进行“造型”。
Example:
class Stacks { String[] arr = { "java", "c#", "javascript", "asp.net", "ado.net", "html", "lucene.net", "android" }; void myMethod() { Stack<String> stacks = new Stack<String>(); for (int i = 0; i < arr.length; i++) { stacks.push(arr[i]); System.out.println(arr[i]); } } }
8.1.4 HashTable
8.1.5 List
class Lists { ArrayList<Integer> arraylist = new ArrayList<Integer>(); void myMethod() { for (int i = 0; i < 1000000; i++) { arraylist.add(i); } for (int j = 0; j < arraylist.size(); j++) { System.out.println(arraylist.get(j)); } } }
PS:Java 中的 容器中的大小的size(); 获取元素为 get(); example: arr.get(i);