1:在内部类中访问内部类中得方法或者外部类中的方法
(1):调用外部类成员System.out.println(InnerCall_Out.this.name);
(2):调用内部类成员 System.out.println(this.name);
(3):内部类中直接调用方法(首先在内部类中查找,其次去外部类查找)System.out.println(name); A();
(4):加static后,直接外部类.内部类调用InnerCall_Out.Inner i = new InnerCall_Out.Inner();
注意一点,静态方法和实例方法互相的权限(静态只能调用静态方法,普通方法可以调用静态方法)
2:方法内部类(因为是内部类的方法,所以有生命周期,在方法调用之后就销毁了)
public class Method_Inner_Out {
public void test(){
class Inner{
private String name;
public void A(){
System.out.println("我是A方法");
}
}
Inner i = new Inner();
i.A();
}
public void test(final int s){
final String name1="test";
class Inner{
private String name;
public void A(){
int ss=s;
ss++;
System.out.println(s);
System.out.println(name1);
4:局部匿名内部类
class Local_NameClass extends Local_NotNameClass{
//局部内部类
}
Local_NotNameClass l = new Local_NotNameClass(){
//局部匿名内部类
};
5:异常三要素
(1):异常名称,Exception结尾 、顾名思义
(2):message需要捕获异常的内容
(3):打印堆栈信息
6:Excption的先后顺序(因为异常是从上至下读取,捕捉到了异常就停止)
try {
s = 1 / 0;
}catch (Exception e) {
// TODO: handle exception
} catch (ArithmeticException e) {
// TODO: handle exception
}
catch (NullPointerException e) {
// TODO: handle exception
}
发现一个问题try里面放的return 完全没意义,如果写return 也只有放在finnary后面
8:Exception的抛与接受或者处理,最后可有main处理或者接受,最后审定
public class Throws_Accept {
public void A() throws Exception{
throw new Exception();
}
public void B() throws Exception{
A();
}
public static void main(String[] args) throws Exception {
Throws_Accept e = new Throws_Accept();
e.B();
}
}