0

我们可以在java中同时添加一个静态变量和一个非静态变量吗?例如,

class Evolve{
    static int i = 1;
    static int j = 2;
    int x = 3;
    static int y = 6;

    public static void main(String args[]){
        System.out.println(i + j);
        System.out.println(x + i);
        System.out.println(i + y);
        System.out.println(x + j);
    }
}

谢谢

4

5 回答 5

2

直到您初始化 Evolve 的实例并将其称为

this.i

或者像这样

Evolve evolve = new Evolve();
System.out.println(evolve.i + Evolve.j);
于 2012-11-09T01:05:20.193 回答
1

由于x是一个实例变量,您需要一个 Evolve 对象的实例...

public static void main(String args[]){
  Evolve ev = new Evolve();
  System.out.println(Evolve.i + Evolve.j);
  System.out.println(ev.x + Evolve.i);
  System.out.println(Evolve.i + Evolve.y);
  System.out.println(ev.x + Evolve.j);
}
于 2012-11-09T01:35:01.557 回答
1

不,非静态(或实例)变量x在方法的静态上下文中不可访问main

于 2012-11-09T01:05:50.127 回答
1

您需要将非静态对象放在一个实例中,然后您可以使用添加它们Evolve.i + this.x

于 2012-11-09T01:05:52.750 回答
1

是否可以添加它与静态/非静态无关。

这就是您应该如何访问静态和非静态(实例)变量的方式。

于 2012-11-09T01:08:24.050 回答