2012年2月27日
主要内容:字符串和文本IO和 关于对象的思考
1、字符串和文本IO
1)限定的(interned):Java虚拟机为了提高效率并节约内存,对具有相同字符串序列的字符串直接量使用同一个实例,这样的实例称为限定的。
2)Character字符类包装类、StringBuilder/StringBuffer类
Character类是char的包装类;StringBuilder和StringBuffer比String类更灵活,是动态的,可添加,插入或追加新内容。StringBuffer修改缓冲区的方法是同步,适合于多任务并发访问,而StringBuilder不是,适合于单任务访问。
3)文件类File 获取文件和目录属性,删除和重命名文件
java.io.File包 windows文件路径:C:\book\Welcome.java 而Unix文件路径:/home/book/Welcome.java 屏蔽细节的相对路径Java目录分隔符斜杠/.
如:File file =new File("images/us.gif");
4)PrintWriter写数据Scanner读数据
java.io.PrintWriter output = new java.io.PrintWriter(file);
java.util.Scanner input = new java.util.Scanner(System.in);
Scanner令牌读取方法(token-reading method) 读取分隔符分开的令牌;next() nextLine() nextInt()等
一般分隔符是空格 useDelimiter(String regex)设置分隔符
2、关于对象的思考
1)不可变类(Immutable Class)
。所以数据域都是私有
。没有修改器方法(setter)
。没有一个访问器方法,它会返回一个纸箱可变数据域的引用
2)合约(contract)
从类外可以访问的全部方法和数据域,以及期望这些成员如何行动的描述。类似于UML图
3)组合(composition)和聚集(aggregating)
组合:一对一 实心菱形 聚集:一对多 空心菱形
4)类的设计原则
。内聚性
。一致性
。封装性
。清晰性
。完整性