t1是静态的还是非静态的?

时间:2016-10-22 09:06:36

标签: java

t1是静态的还是非静态的?

class Test { 
    void display() {
        System.out.println("hello");
    }

    public static void main(String a[]) {
        Test t1 = new Test(); //object created
        t1.display();
    } 
}

2 个答案:

答案 0 :(得分:0)

t1是局部变量,局部变量不是静态的,因为它们存在于方法的范围内,而静态变量/字段独立于方法执行而存在。


必须在方法外声明静态变量/字段。

答案 1 :(得分:-1)

它本身不是静态的,尽管它仅存在于静态上下文中。 static描述符仅适用于类级实体。考虑这个类(内置java.lang.Math类的简化版本):

class EasyMath {
    public static final double PI = 3.17;

    public static int quadruple(int i) {
        int num = i * 4;
        return num;
    }
}

您可以使用PI直接引用EasyMath.PI的值。这是一个类变量。它直接属于EasyMath类,而不属于类的实例。

同样,您也可以从类中引用quadruple方法:EasyMath.quadruple(6)。那是因为该方法是静态的,它直接属于类。

请注意,quadruple方法定义了一个名为num的局部变量。但是,您无法使用EasyMath.num来引用该内容。它不属于班级。

它在本地作用于静态quadruple方法,因此它只能在该方法中使用,而不能在其他任何地方使用。另一种静态方法无法查看或引用它。同样,如果有任何实例方法,他们也无法看到它。局部变量永远不会是静态的。