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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 微凉的暮色 于 2015-6-29 18:39 编辑


package lianxi;
public class Outer {
        int num = 8;

        public void method(){
               
                 final int num = 5;//-->怎么访问这个
                  
                 class Inner{
                         int num = 3;
                         public void show(){
                                 System.out.println(num); //结果:3
                                 System.out.println(this.num); //结果:3
                                 System.out.println(Outer.this.num); //结果:8
                         }
                 }
        
                 Inner in = new Inner();
                 in.show();                  
        }
        public static void main(String[] args) {
                new Outer().method();
        }
        
}

4 个回复

倒序浏览
要么就换个变量名,有个帖子里说可以强转类型。
回复 使用道具 举报
this. 是本类中的num
除非换个名字,或者去掉本类中的num,用 System.out.println(num);访问
回复 使用道具 举报
琼琼~ 发表于 2015-6-29 23:19
this. 是本类中的num
除非换个名字,或者去掉本类中的num,用 System.out.println(num);访问 ...

:o 强转是怎么回事?
话说 class文件里是这样写 this.val$num 问题是这个奇怪的符号 怎么用java解释
回复 使用道具 举报
本帖最后由 微凉的暮色 于 2015-6-30 08:10 编辑
琼琼~ 发表于 2015-6-29 23:19
this. 是本类中的num
除非换个名字,或者去掉本类中的num,用 System.out.println(num);访问 ...
下面是翻遍过来的代码,可以说引用很齐全,就是不认识
  1. package lianxi;

  2. import java.io.PrintStream;

  3. public class Outer
  4. {
  5.   int num = 8;
  6.   int out_num = 8;

  7.   public void method()
  8.   {
  9.     int num = 5;
  10.     int method_num = 5;

  11.     1Inner in = new Object(method_num)
  12.     {
  13.       int num;
  14.       int in_num;

  15.       public void show()
  16.       {
  17.         int num = 1;
  18.         int show_num = 1;

  19.         System.out.println(num);
  20.         System.out.println(this.num);
  21.         System.out.println(Outer.this.num);
  22.         System.out.println(show_num);
  23.         System.out.println(this.in_num);
  24.         System.out.println(this.val$method_num);// [b]反编译的代码[/b]
  25.         System.out.println(Outer.this.out_num);
  26.       }
  27.     };
  28.     in.show(); }

  29.   public static void main(String[] args) {
  30.     new Outer().method();
  31.   }
  32. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马