java 之匿名内部类用法案例

来源:互联网 发布:易企秀mac官网下载 编辑:程序博客网 时间:2024/05/29 12:24

java 之匿名内部类用法案例:
案例一:
package innerclass;
/**
* 1.内部类可以直接访问外部内的成员 包括私有成员
* 2.外部内要访问内部类成员或方法,必须要创建对象
* 3.访问方式:外部类.内部类 对象名=外部类对象.内部类对象
* @author Administrator
*
*/
class OuterClass {

private int num=10;class InnerClass{    public void show(){        System.out.println(num);    }}public void method(){    InnerClass iClass= new InnerClass();    iClass.show();}

}

class TestDemo{
public static void main(String[] args) {

    OuterClass.InnerClass oi=new OuterClass().new InnerClass();    oi.show();}

}

案例二:
package innerclass;

//输出30,20,10
class OuterClass2 {

public int num=30;class InnerClass{    public int num =20;    public void show(){        int num=10;        System.out.println(num);        System.out.println(this.num);        System.out.println(OuterClass2.this.num);    }}public static void main(String[] args) {    OuterClass2.InnerClass ic = new OuterClass2().new InnerClass();    ic.show();}

}

案例三:
package innerclass;
/**
局部内部类访问局部变量 局部变量必须是final的
* @author Administrator
*
*/
class OuterClass3 {

 public int num=30; public void method() {     //局部内部类访问局部变量 局部变量必须是final的     final int num2=20;     class InnerClass{         private void show() {            System.out.println(num2);        }     }     InnerClass ic=new InnerClass();     ic.show(); }  public static void main(String[] args) {     OuterClass3 oc = new OuterClass3();     oc.method();}

}