java学习笔记(六)之匿名内部类

来源:互联网 发布:淘宝神经猫 编辑:程序博客网 时间:2024/05/22 16:55

匿名内部类:

就是内部类的简化写法

前提:内部类可以继承或实现一个外部类或者接口

格式为:new 外部类名或者接口名(){覆盖类或者接口中的代码,
(也可以自定义内容。)}

例如:

class NoNameDemo {public static void main(String[] args) {Do d = new Do();//d.print(new B());d.print(new A(){public void test(){System.out.println("haha");}});}}interface A{void test();}/*class B implements A{public void test(){System.out.println("hahah");}}*/class Do{public void print(A a){a.test();}}
接口里边可以定义内部接口和抽象类
抽象类里也可以定义接口和抽象类

例如:

abstract class A{public abstract void printA();interface B{public void printB();}}

intreface A{ public abstract void printA();abstract class B{public abstract void printB();}}

异常

异常的体系

Throwable
• Error

通常出现重大问题如:运行的类不存在或者内存溢出等。

不编写针对代码对其处理

Exception
• 在运行时运行出现的一起情况,可以通过try catch finally

Exception和Error的子类名都是以父类名作为后缀。


throws和throw:
throws用于标识函数暴露出的异常。
throw用于抛出异常对象。
throws与throw的区别:
• thorws用在函数上,后面跟异常类名。
• throw用在函数内,后面跟异常对象。

try{需要检测的代码;}catch{异常处理代码;}finany{一定会执行的代码;}

1.RuntimeException以及其子类如果在函数中被throw抛出,可以不用在函数上声明。
2.一个方法被覆盖时,覆盖它的方法必须抛出相同的异常或异常的子类。
3.如果父类抛出多个异常,那么覆写(覆盖)方法必须抛出那些异常的一个子集,不能抛出新的异常
















0 0