繁体   English   中英

调用与对象与类之间有什么区别

[英]What's the difference between calling through and object vs class

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

例如鲍勃班

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

如果我像物体一样叫它会有什么区别

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

vs这样称呼它

SecretNumber.changeSecretNumber();

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

结果是一样的。

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

如果您也这样做,大多数编译器也会警告您。 有人认为它应该是编译错误

在Java中,除一类方法是“静态”的,你不能把它除了通过一个对象实例。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM