第七章 内部类与异常类
1、内部类
public class RedCowForm{ RedCow cow; class RedCow{ } }
① 外嵌类的成员变量在内部类中仍然有效,内部类中的方法也可以调用外嵌类中的方法。 ② 内部类的类体中不可以声明类变量和类方法,外嵌类的类体中可以用内部类声明对象,作为外嵌类的成员。 ③ 内部类仅供它的外嵌类使用,其他类不可以声明某个类的内部类对象。 ④ 如果内部类用static修饰,那再其他类中就可以用(外嵌类.内部类 )来创建对象并使用。
2、匿名类
一般用于事件处理,实现接口。
① 匿名类可以继承父类的方法也可以重写父类的方法。 ② 匿名类可以访问外嵌类中的成员变量和方法,匿名类的类体不可以声明static成员变量和方法。 ③ 在使用匿名类创建对象时,要直接使用父类的构造方法。
3、异常类
异常:程序运行时可能出现的一些错误。
异常处理:改变程序的控制流程,让程序有机会对错误做出处理。(允许方法调用过程中抛出异常,终止当前方法的继续执行)
Java中将可能出现的异常操作方法try部分,一旦try部分抛出异常,或调用某个可能抛出异常对象的方法,并且该方法抛出了异常对象,那try部分将立刻结束执行转向执行相应的catch部分。
throws用于声明要产生的若干个异常;throw用于抛出该异常,导致该方法结束执行。
4、断言
一般用于程序不准备通过捕获异常来处理的错误。
assert booleanExpression;
`assert booleanExpression:messageException;
第八章 常用实用类
1、String类
1、String对象的创建方式
① 字符串常量创建:String str1 = "Hello";
String str2 = "Hello";
② 构造方法创建:String str1 = new String("Hello");
String str2 = new String("Hello");
③ 区别: 相同:都是先建立一个缓冲区,里面存放着"Hello"
不同:① 里首先检查缓冲区里有无此字符,如果有直接返回进行引用,不再建缓冲区。(使用的是缓冲区中同一个对象) ② 里首先检查缓冲区里有无此字符,但不管有无,都会新建一个堆。(两个不同存储对象,只是对象中内容相同)
2、两个常用构造方法
① char a[] = {'j','a','v','a'}; String s = new String(a);等价于: String s = new String("java");
② String(char[],int startIndex,int count);