在研究java编程语言时,我遇到以下声明
我对标有黄色的陈述感到困惑。特别是,实例方法在这里意味着什么?如果有一个例子可以解释这一点,那么我将非常感激。
答案 0 :(得分:1)
您可以调用静态方法而无需实例化对象:
TestObject.staticMethodCall();
对于非静态方法,您需要创建一个实例来调用方法:
new TestObject().nonStaticMethodCall();
答案 1 :(得分:1)
考虑以下顺序。
Class X
静态方法static void foo()
Class Y
,在其X.foo()
main method
X.foo()
限定符instance
更改为static
方法
X
,而不是Y
Y
课程并观察错误。另一方面,如果您在不更改X.foo
的情况下以某种方式更改了static-ness
的正文,那么就不会出现错误。有关更多信息,请查看"二进制兼容性"
答案 2 :(得分:0)
首先,您应该了解类方法和实例方法之间的区别。示例如下所示。
public Class Example{
public static void main(String[] args) {
Example.method1();//or you can use method1() directly here
Example A = new Example();
A.method2();
}
public static void method1(){
}
public void method2(){
}
}
method1
是类方法,您可以将其作为类的方法。您可以在不通过新方法启动对象的情况下调用它。因此,您可以通过以下方式调用它:Example.method1()
method2
是实例方法,它要求您通过启动对象的实例来调用它,即Example A = new Example(); A.method2();
其他:
该错误是由于删除了类static
等类方法的method1
修饰符。然后method1
成为method2
之类的实例方法,您必须启动要调用的实例。