java基础知识
内部类
定义:就是一个类的内部定义一个类;
1、成员内部类:
当定义了内部类的方法需要访问的时候,需要通过外部类进行new;
Outer o1 = new Outer();
Outer.Inner o2 = o1.new Inner(); //o1是new的外部类的名
**可以获得外部类的私有属性(这就很牛)
一个java类中,只有一个public类,可以有多个class类;
2、局部内部类;
public class Outer {
public void meth(){
class Inner{ //局部内部类
public void in(){
}
}
}
}
匿名类:
new inner().eat(); //inner是个类,eat是类中的方法;
不知道是谁,但是直接调用方法的这种就是匿名类;
异常机制 exception
定义:程序运行中出现的问题;
异常的类型:检查性异常:最具代表性的是用户错误或问题引起的异常(难以预见);
运行时异常:可以在编译时被忽略,运行时异常;
错误:error,脱离程序员控制的问题;
都是Throwable的子类;
关键字:try,catch,finally,throw,throws;
try{监控区域} catch{抛出异常,想要捕获的错误类型}Fnally{善后工作}
public class Test {
public static void main(String[] args) {
int a=1;
int b=0;
try {
System.out.println(a/b);
}catch (ArithmeticException e){
System.out.println("出现异常,除数不能为零!");
}catch (Throwable f){
System.out.println("异常了");
?
}
finally {//善后工作
System.out.println("finally");
}
}
}
注意:当需要捕获多个错误的时候,需要把最小的写前面,最大的如Throwable写在最后,才能捕获到。
写异常的快捷键:Ctrl+Alt+T;
主动抛出异常:
public class Test {
public static void main(String[] args) {
new Test().test(1,0);
}
public void test(int a,int b){
if(b==0){
throw new ArithmeticException();//主动的抛出异常,一般在方法中;
}
}
}
当处理不了的时候,可以直接抛出去;使用Throws;