A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王者黑桃 中级黑马   /  2014-1-3 21:08  /  783 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

外部类调用非静态内部类中的方法:

public class OuterClass{
         public class InnerClass{
                   public void print(){
                            System.out.println("this a innerclass");
                   }
         }
         public void fun(){
                  new InnerClass().print();
         }
         public static void main(String[] args){
                  OuterClass.InnerClass p = new OuterClass().new InnerClass();
                  p.print();
                  new OuterClass().fun();
                  System.out.println("this is a outerclass");
         }
}

外部类调用静态内部类中的非静态方法:

public class OuterClass{
         public static class InnerClass{
                  public InnerClass(){
                           System.out.println("this is a innerclass");
                  }
                 public void print(String str){
                          System.out.println(str);
                 }
         }
         public static void main(String ages[]){
                  OuterClass.InnerClass ci = new OuterClass.InnerClass();
                  ci.print("this is a string");
         }
}

外部类调用静态内部类中的静态方法:

public class OuterClass{
          public static class InnerClass{
                    public static void print(String str){
                             System.out.println(str);
                    }
         }
         public void fun(String str){
                   InnerClass.print(str);
         }
         public static void main(String[] args){
                   InnerClass.print("this is a string");
                   new OuterClass().fun("this is a another string");
         }
}

总结:

在一个类中可以声明一个类或接口。
在一个接口中可以声明一个类或接口。
在一个方法中可以声明一个类(局部内部类)。
普通类不能声明为static,而内部类可以声明为static(静态内部类)。
静态内部类可以有静态成员和非静态成员,而非静态内部类则不能有静态成员。
静态内部类的成员可以访问外部类的静态变量,而不可访问外部类的非静态变量。
非静态内部类的成员可以访问外部类的非静态变量。

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马