t1
是静态的还是非静态的?
class Test {
void display() {
System.out.println("hello");
}
public static void main(String a[]) {
Test t1 = new Test(); //object created
t1.display();
}
}
答案 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
方法,因此它只能在该方法中使用,而不能在其他任何地方使用。另一种静态方法无法查看或引用它。同样,如果有任何实例方法,他们也无法看到它。局部变量永远不会是静态的。