内部类

1.成员内部类:

 

 

 

 

 

 

public class ExternalClass {
    public class InnerClass{
        
        public void innerMethod() {
            System.out.println("This is the inner class method");
        }
        
    }
    
    public int num;
    
    public void externalMethod() {
        System.out.println("This is the external class method");
        InnerClass innerClass = new InnerClass();
        innerClass.innerMethod();//这在简介调用内部类里面的方法
    }
    
    
}            
    public static void main(String[] args) {
     //直接调用内部类方法: ExternalClass.InnerClass inner
= new ExternalClass().new InnerClass(); inner.innerMethod(); }

 

内部类的同名变量访问:

 

 

 

public class Outer {
    int num = 10;
    public class Inner{
        int num = 20;
        public void innerMethod() {
            int num = 30;
            System.out.println(num);//30
            System.out.println(this.num);//20
            System.out.println(Outer.this.num);//10
        }
    }
}
public class TestOuter {
    public static void main(String[] args) {
        Outer.Inner inner = new Outer().new Inner();
        inner.innerMethod();
    }
}

2.局部内部类

 

 

 如果一个类是定义在方法内部的,则是一个局部内部类:

public class Outer {
    public void outerMethod() {
        class Inner{
            public void innerMethod() {
                int num = 10;
                System.out.println(num);
            }
        }
        
        Inner inner = new Inner();
        inner.innerMethod();
    }

 

 

注意:

 

 匿名内部类:

 

 

        MyInterface myInterface = new MyInterface() {            
            @Override
            public void method() {
                System.out.println("This is an anonymous class!");
                
            }
        };

 

 

 

 

 

 

 

 

 

 

 

posted @ 2020-11-05 15:07  Joyce502  阅读(49)  评论(0)    收藏  举报