呼叫通过和对象与类之间有什么区别

时间:2012-07-06 01:05:40

标签: java

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

例如班级鲍勃

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

如果我将其称为对象

,会有什么不同
SecretNumber secretNumber = new SecretNumber();
secretNumber.changeSecretNumber();

vs称之为

SecretNumber.changeSecretNumber();

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

4 个答案:

答案 0 :(得分:3)

结果是一样的。

您应该按类名称调用它,而不是通过实例调用它,因为没有动态调度

如果你这样做,大多数编译器都会给你一个警告。 Some people argue that it should have been made a compile error

答案 1 :(得分:0)

在Java中,除非类方法是“静态的”,否则不能通过对象实例将其称为

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

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

答案 2 :(得分:0)

第二种形式不是有效的Java。如果声明static,则只能在类上调用方法。

答案 3 :(得分:0)

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