我被告知这是调用方法的一种方式:
如果您只写方法或属性的名称,Java 将根据以下规则猜测您在名称前写的含义
- 如果方法不是静态的,它将尝试使用名称查找非静态方法/属性,然后查找静态方法/属性
- 如果方法是静态的,它将尝试仅查找静态方法/属性
谁能给我一个例子?我无法理解它的含义,因为它如何在找到方法之前知道该方法是否是静态的,但它是根据它的非静态还是静态来找到方法的?或者他们指的是两种不同的方法吗?
这是一个示例,其中包含对方法 c、d 和 e 中将发生的情况的适当注释:
class A {
// methods to be looked up
// a static method
static void a() {};
// non-static method
void b() {};
static void c() {
// valid reference to another static method
a();
}
static void d() {
// This would fail to compile as d is a static method
// but b is a non-static
b();
}
// non-static method would compile fine
void e() {
a(); // non-static method can find a static method
b(); // non-static method can find another non-static method
}
}