通过对象调用方法与类之间有什么区别。
例如班级鲍勃
public class SecretNumber() {
public static int secretNumber = 2;
public static void changeSecretNumber(){
secretNumber++;
}
}
如果我将其称为对象
,会有什么不同SecretNumber secretNumber = new SecretNumber();
secretNumber.changeSecretNumber();
vs称之为
SecretNumber.changeSecretNumber();
一种方法如何影响另一种?
答案 0 :(得分:3)
结果是一样的。
您应该按类名称调用它,而不是通过实例调用它,因为没有动态调度。
如果你这样做,大多数编译器都会给你一个警告。 Some people argue that it should have been made a compile error
答案 1 :(得分:0)
在Java中,除非类方法是“静态的”,否则不能通过对象实例将其称为。
这是一个将声明为“静态”的方法示例:
http://www.leepoint.net/notes-java/flow/methods/50static-methods.html
public static double mean(int [] p){ int sum = 0; //所有元素的总和 for(int i = 0; i
http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html
答案 2 :(得分:0)
第二种形式不是有效的Java。如果声明static
,则只能在类上调用方法。
答案 3 :(得分:0)
通过类调用方法是一种静态方法。除非您将该方法声明为静态方法,否则编译器将给您一个编译错误。