我刚开始学习Java,并编写了一个使用静态字段进行测试的类。一切正常,但是在Eclipse中,我看到一个图标,将其悬停时显示为:“应该以
静态方式访问 CarCounter类型的静态方法getCounter 。” 那么正确的方法是什么?
这是课程:
public class CarCounter {
static int counter = 0;
public CarCounter(){
counter++;
}
public static int getCounter(){
return counter;
}
}
这是我尝试访问变量计数器的地方:
public class CarCounterTest {
public static void main( String args[] ){
CarCounter a = new CarCounter();
System.out.println(a.getCounter()); //This is where the icon is marked
}
}
静态字段和方法不属于特定的对象,而是属于一个类,因此您应该从该类而不是对象中访问它们:
CarCounter.getCounter()
并不是
a.getCounter()
问题内容: 我是JAVA的新手,我喜欢尝试并理解所有内容。 在JAVA中访问静态方法“ hero.returnHp()”时,我具有以下内容: 该程序运行良好,但是我注意到Eclipse发出警告,指出“应以静态方式访问hero类型的静态方法。” 当我接受自动修复时,它会更改为“ Mike.returnHp();”。到“ hero.returnHp();”。 所以我有两个问题: 1)这有什么好处? 2
问题内容: 这是指帖子 ..无法回复或评论任何这样创建的新帖子。为什么是我的 发出警告-应该以静态方式访问静态字段MyUnits.MILLSECONDS吗?谢谢。 问题答案: 因为当您访问静态字段时,您应该在类(或本例中为枚举)上执行此操作。如 不在实例中 编辑 要解决 为什么这样 的问题:在Java中,当您将声明为时,就是说它是类的成员,而不是对象(因此为什么只有一个)。因此,在对象上访问它是没
问题内容: 我想在同一类对象的各种实例之间共享一个对象。 从概念上讲,在我的程序运行时,类A的所有对象都访问类B的相同对象。 我已经看到这是系统范围的,不鼓励使用它。这是否意味着如果我在实例化类A的对象的同一JVM上运行另一个程序,则这些对象可能会访问与先前程序中访问的对象相同的B对象? 使用静态字段的一般缺陷是什么? 是否有其他选择(不需要大量的实施工作)? 问题答案: 静态不是完全意味着“由所
静态变量属于类本身,在类加载的时候就会分配内存,可以通过类名直接访问; 非静态变量属于类的对象,只有在类的对象产生时,才会分配内存,通过类的实例去访问; 静态方法也属于类本身,但是此时没有类的实例,内存中没有非静态变量,所以无法调用。
正如他们所说,System是最终的类,它将类型外的PrintStream作为字段成员,println是PrintStream类中的方法。 我创建了一个类,其中静态字段no的类型为,只想访问Number类的方法,但它抛出了 对于UseNumber类