是否可以在此方法中获得调用静态方法的对象?
我有这样的代码:
class A{
static void foo(){
}
}
A a = new A();
a.foo();
我可以在方法foo()
中获得实例a
吗?
首先,作为一个程序员,你的代码不太好。
这是因为静态方法是类级方法,应该在没有任何类实例的情况下调用。
推荐方法:
class A{
static void foo(){
}
}
A.foo();
我可以在方法foo()中获得实例a吗?
不行。因为foo()被声明为静态的。因此,您不能在该方法中使用this,因为this包含对调用该方法的对象的引用。
根据定义,static
方法没有实例对象(静态方法不操作特定对象,它们在类中定义纯粹是为了命名空间)——所以没有。
不可能…静态方法没有引用,你必须通过它重新实现方法:
<>之前A类{静态void foo(A theObject){}}A = new A();A.foo(一个);之前最好不要从对象的实例中调用静态方法不;这就是static
的意思。
编译器实际上完全忽略了实例。
使用实例方法