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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 卟離不棄 中级黑马   /  2015-3-22 11:02  /  868 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
* 静态内部类: 静态内部类定义在类中,任何方法外,用static定义。
* 注意:静态内部类中可以定义静态或者非静态的成员
*/
public class Outer {
         private static int i = 1;
         private int j = 10;
         
         public static void outer_f1(){
         
         }
         
         public void outer_f2(){
         
         }
         
         
         // 静态内部类可以用public,protected,private修饰
         // 静态内部类中可以定义静态或者非静态的成员
         static class Inner{
                 static int inner_i = 100;
                 int inner_j = 200;
                 
                 static void inner_f1(){
                         System.out.println("Outer_i:"+i);//静态内部类只能访问外部类的静态成员
                         outer_f1();//包括静态变量和静态方法
                 }
                 
                 void inner_f2(){
                 //System.out.println("Outer.i"+j);//静态内部类不能访问外部类的非静态成员
             //outer_f2();//包括非静态变量和非静态方法
                 }
         
         }
         
         public void outer_f3(){
                 //  外部类访问内部类的静态成员:内部类.静态成员
                 System.out.println(Inner.inner_i);
                 Inner.inner_f1();
                 
                 //  外部类访问内部类的非静态成员:实例化内部类即可
                 Inner inner = new Inner();
                 inner.inner_f2();
         
         }
}

public class OuterDemo {
        public static void main(String[] args) {
                new Outer().outer_f3();
        }
}

0 个回复

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