当前位置: 首页 > 知识库问答 >
问题:

如何访问外部类中与内部类中同名的变量[重复]

孔硕
2023-03-14

这个问题是针对Java的

下面是一个例子:

     public class A {

        int thing = 1;

          public class B {

             int thing = 2;
             System.out.println("I want to print out thing from class A" +what goes here?);
          }
     }   

共有3个答案

厍建义
2023-03-14

您可以< code>A.this.thing的形式访问A的变量

卓胜
2023-03-14

使用A.this.thing表示“这里有什么?”

岑畅
2023-03-14

用类名和< code>this限定变量:

System.out.println("I want to print out thing from class A" + A.this.thing);
 类似资料:
  • 问题内容: 在内部类中,可以访问外部类的变量,但不能访问方法的局部变量。我了解了无法访问方法的局部变量的部分,但我想知道为什么外部类变量可以访问? 我的理解是,由于内部类与外部类绑定,因此只要父级可用,子级就可以访问其父级变量。我对么? 问题答案: 假设您的外部类在内部类的范围内(非静态)被称为,以获取该字段。 例如, 其中Outer是类的名称,并标识该字段。 您也可以直接抓取它,但是如果由于阴影

  • 在内部类中,外部类的变量是可访问的,但方法的局部变量不是。我理解了关于方法的局部变量不可访问的部分,但我想知道为什么外部类变量是可访问的? 我的理解是,由于内部类与外部类绑定,因此只要父类可用,子类就可以访问其父变量。我说得对吗?

  • 问题内容: 这不是直截了当的问题。在我的情况下,外部类变量和内部类setter方法的参数名称相同。喜欢: 现在,我无法初始化外部类实例变量p,因为它指示内部类。再次,我做不到它得到一个错误。现在如何分配外部p,同时将内部Class方法的参数命名为p? 问题答案: 这是您可以/应该这样做的方式:

  • 这不是直截了当的问题。在我的例子中,外部类变量和内部类setter方法的参数名称是相同的。比如: 现在我不能用初始化外部类实例变量p,因为它指示内部类。同样,我不能执行会出现错误。现在,我如何分配外部p,使内部类方法的参数与名称p相同?

  • 问题内容: 限制条件: 我有一个编写的Maven源代码生成器,它是从具有嵌套名称空间的某些数据文件创建POJO类的。我希望每个名称空间都嵌套为一个内部类。在某些情况下,我最终会得到内部类,这些内部类与最外部类的简单名称相同。 所有类都必须是作用域,因为这是对类型安全包装器的覆盖,例如属性文件,但是是分层的。 我不能更改名称,否则我将更改名称含义和包含数据的名称空间。 给出比我有以下代码: 内部类应

  • 但是,如果我在内部类中声明了一个同名的variabe呢?有什么方法可以显式引用外部变量吗? 顺便说一句,这和这个问题不同,因为它考虑的是局部堆栈变量。