美文网首页
内部类(基础)之局部内部类

内部类(基础)之局部内部类

作者: 998584f56259 | 来源:发表于2016-08-17 23:07 被阅读58次

    1、在方法中定义的内部类称为局部内部类。与局部变量类似,局部内部类不能有访问说明符,因为它不是外围类的一部分,即局部内部类对包围它的方法之外的任何东西都不可见。

    2、局部内部类只能够访问该方法中的局部变量,所以也叫局部内部类。而且这些局部变量一定要是final修饰的常量。所以我们可以看到定义局部内部类时,如果局部内部类中调用形参和方法中定义的变量,则这些变量需要加上final。

    3、局部内部类详细实例说明:

    public class Outer {
    private int s = 100;
    private int out_i = 1;
    
    public void f( int k) {
        
           final int s = 200;
           int i = 1;
           final int j = 10;
          
           //定义在方法内部
           class Inner {
               
                  int s = 300;// 可以定义与外部类同名的变量
    
                  // static int m = 20;//不可以定义静态变量
                  Inner(int k) {
                         inner_f(k);
                  }
    
                  int inner_i = 100;
    
                  void inner_f(int k) {
                      //如果内部类没有与外部类同名的变量,在内部类中可以直接访问外部类的实例变量
                      System.out.println(out_i);
                      //可以访问外部类的局部变量(即方法内的变量),但是变量必须是final的
                      System.out.println(j);
                      //如果内部类中有与外部类同名的变量,直接用变量名访问的是内部类的变量
                      System.out.println(s);
                      //用this.变量名访问的也是内部类变量
                      System.out.println(this.s);
                      //用外部类名.this.变量名访问的是外部类变量
                      System.out.println(Outer.this.s);
                  }
           }
           new Inner(k);
    }
    
    public static void main(String[] args) {
           // 访问局部内部类必须先有外部类对象
           Outer out = new Outer();
           out.f(3);
    }
    }
    

    相关文章

      网友评论

          本文标题:内部类(基础)之局部内部类

          本文链接:https://www.haomeiwen.com/subject/lkfvsttx.html