一、常规内部类

 1 public class Outer {
 2     int count;
 3     
 4     void say(){
 5         count++;
 6         System.out.println("我是外部类");
 7     }
 8     void walk(){
 9         count++;
10         System.out.println("I am walking.....");
11     }
12     class Inner{
13         int inner_count; //外部类无法访问到内部类的局部变量
14         void say(){
15             walk();//内部类可以直接调用外部类方法及变量
16             Outer.this.say();//方法名重复时可以使用此种方法调用
17             count++;
18             System.out.println("我是内部类"+count);
19         }
20         
21     }
22 }

   实例化内部类

1 public class Demo {
2     public static void main(String[] args) {
3         Inner i=new Outer().new Inner();
4         i.say();
5     }
6 }

 

二、静态内部类

 1 public class Outer {
 2     static int count;
 3     
 4     void say(){
 5         count++;
 6         System.out.println("我是外部类");
 7     }
 8     void walk(){
 9         
10         System.out.println("I am walking.....");
11     }
12     static    class Inner{ //静态内部类无法访问外部类的非静态变量
13         int inner_count; 
14         void say(){
15             System.out.println("我是内部类"+count);
16         }
17     }
18 }

    实例化内部类

public class Demo {
    public static void main(String[] args) {
        Inner i=new Outer.Inner();
        i.say();
    }
}

 

posted on 2016-08-22 10:35  向着大牛奋斗  阅读(133)  评论(0编辑  收藏  举报