内部类的应用

内部类分为三个类型:成员内部类,局部内部类,匿名内部类

第一:成员内部类,在类的成员位置,和类的成员变量和成员方法位置是一样的。
代码演示:
public class neibulei {

public static void main(String[] args) {
    //outer o = new outer();
    //o.method();

    //outer.inner i = new outer().new inner();
    //i.function();

    //outer2.inner2 i =new outer2.inner2();
    //i.function();
    outer2.inner2.function();
}

}
class outer{
public void method() {
inner i =new inner();
i.function();
}
class inner{
public void function() {
System.out.println(“function”);
}
}
}

class outer2{
public void method() {
inner2 i =new inner2();

}
static class inner2{
    public static void function() {
        System.out.println("function");
    }
}

}

第二:局部内部类,在方法内,出了方法就无法使用
代码演示:

public class neibulei2 {

public static void main(String[] args) {
    outer3 outer3 = new outer3();
    outer3.method();
}

}
class outer3{
public void method() {

    class inner{
    public void function() {
        System.out.println("function");
    }       
}
    inner i =new inner();
    i.function();
}

}

第三种:匿名内部类,可以把匿名内部类看成没有名字的局部内部类,定义在方法中,在定义的时候就要创建对象。
代码演示:

public class neibulei {

public static void main(String[] args) {
    outer outer = new outer();
    outer.method();
}

}
interface inner{
public void function() ;
}
class outer{
public void method() {
/*
new inner(){
public void function() {
System.out.println(“function”);
}
}.function();;
*/
inner i = new inner() { //重点,后面记得加分号
public void function() {
System.out.println(“function”);
}
};
i.function();
i.function();
}
}

猜你喜欢

转载自blog.csdn.net/StreamlineWq/article/details/81588142
今日推荐