0

通过对象调用方法与通过类调用方法有什么区别。

例如鲍勃班

public class SecretNumber() {
    public static int secretNumber = 2;
    public static void changeSecretNumber(){
        secretNumber++;
    }
}

如果我像对象一样称呼它会有什么区别

SecretNumber secretNumber = new SecretNumber();
secretNumber.changeSecretNumber();

vs这样称呼它

SecretNumber.changeSecretNumber();

一种方法如何影响另一种方法?

4

4 回答 4

3

结果是一样的。

您应该通过类名而不是通过实例调用它,因为不会发生动态调度

如果你这样做,大多数编译器也会给你一个警告。有人争辩说它应该是编译错误

于 2012-07-06T01:14:45.500 回答
0

在 Java 中,除非类方法是“静态的”,否则只能通过对象实例调用它。

这是一个将其声明为“静态”的方法的示例:

http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html

于 2012-07-06T01:08:05.237 回答
0

第二种形式不是有效的 Java。只有声明了类的方法,您才能调用它们static

于 2012-07-06T01:08:43.423 回答
0

通过类调用方法是静态方法。除非您将该方法声明为静态方法,否则编译器会给您一个编译错误。

于 2012-07-06T01:09:36.653 回答