是t1
静态还是非静态?是t1静态还是非静态?
class Test {
void display() {
System.out.println("hello");
}
public static void main(String a[]) {
Test t1 = new Test(); //object created
t1.display();
}
}
是t1
静态还是非静态?是t1静态还是非静态?
class Test {
void display() {
System.out.println("hello");
}
public static void main(String a[]) {
Test t1 = new Test(); //object created
t1.display();
}
}
t1
是局部变量并且由于它们居住的方法的范围内,同时一个静态变量/场独立地方法执行的存在局部变量不是一成不变的。
静态变量/字段必须在方法外部声明。
它本身并不是静态的,尽管它仅存在于静态上下文中。 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
方法中,所以只能在该方法中使用,并且无法在其他位置使用。另一个静态方法将无法看到它或引用它。同样,如果有任何实例方法,他们也将无法看到它。局部变量永远不会是静态的。
你觉得呢?什么使静态的东西? – assylias
[Java'static'](https://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html) - 了解类成员 – nbrooks
static关键字。 –