关于java中的静态方法

时间:2014-03-18 18:20:00

标签: java

在研究java编程语言时,我遇到以下声明

enter image description here

我对标有黄色的陈述感到困惑。特别是,实例方法在这里意味着什么?如果有一个例子可以解释这一点,那么我将非常感激。

3 个答案:

答案 0 :(得分:1)

您可以调用静态方法而无需实例化对象:
TestObject.staticMethodCall();
对于非静态方法,您需要创建一个实例来调用方法:
new TestObject().nonStaticMethodCall();

答案 1 :(得分:1)

考虑以下顺序。

  1. 使用Class X静态方法
  2. 定义static void foo()
  3. 定义Class Y,在其X.foo()
  4. 中调用main method
  5. 编译这两个类并以某种方式运行它
  6. 删除X.foo()限定符
  7. ,将instance更改为static方法
  8. 仅编译 X,而不是Y
  9. 再次运行Y课程并观察错误。
  10. 另一方面,如果您在不更改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之类的实例方法,您必须启动要调用的实例。