非静态方法如何访问java中的静态成员?

时间:2015-10-15 12:36:53

标签: java methods static member non-static

考虑一下:

class SomeClass
{
   static int a;
   int method()
   {
      int b = a;
      return b;
   }
}

如何在方法中访问a?是this.a还是someClass.a

编辑:很抱歉,如果我不清楚我的问题。我想知道的是:*是否有隐藏的 someClass a [在方法]相关联或者只是 [在方法]中访问类成员?

4 个答案:

答案 0 :(得分:1)

它只是someClass.a任何类实例的相同字段。如果您需要明确消除歧义,可以写:h :command

仔细考虑为什么你需要一个非静态方法来返回一个静态成员:它看起来像一个代码"闻到"对我来说。

答案 1 :(得分:1)

我会编辑你的例子,以使它看起来更正确:

public class SomeClass
{
   private static int a = 1;
   public int method()
   {
      int b = a;
      return b;
   }
}

int b = a;等于int b = SomeClass.a;

不要与this混淆 - 它是对象的引用。静态字段属于某个类,而不属于对象,因此使用a

获取this.a是不正确的

并且,正如已经提到的here

  

实例方法可以访问类变量和类方法   直接

答案 2 :(得分:0)

如果你在课堂上,可以通过拨打a

来访问它

您可以使用someClass.a

从任何其他课程收到此静态成员

答案 3 :(得分:0)

只要静态成员是公共成员,就可以使用任何类中的“SomeClass.a”。对于私有成员,如果您确实需要访问该成员并在该类中,请创建一个访问器方法,只需将其指定为“a”。