Java中声明方法的顺序

时间:2018-09-02 13:30:59

标签: java methods

在C / C ++中,我们必须在调用函数之前声明它们。在Javascript中有一个提升变量和函数。我找不到有关Java的信息。是否还有方法的提升?

2 个答案:

答案 0 :(得分:2)

在Java函数/过程中称为方法。唯一的区别是该函数返回值。不,没有像JS(感谢上帝)那样的吊装。对变量的唯一要求是必须在使用它们之前创建它们。就像C. 但是方法是对象的一部分。因此它们是附加到对象上的,您可以在它们的声明上方调用它们(虚拟方法,一切都是虚拟的:)。 因为调用它们实际上涉及<Class>.method()并且在执行时间之前已经编译并加载了Class。 (有些反射会绕过或更改这种行为,等等)。

编译器相对自由地对事物进行重新排序,但是例如volatile可以禁止这种行为。 顺便说一句:Are hoisting and reordering the same thing?

答案 1 :(得分:1)

在Java中,有两种类型的方法:实例方法和类方法。要调用前者,您需要实例化该类,而两个则不需要实例化该类。这是一个示例:

public class MyClass{

  public String instanceMethod(){
    return "This is from instance method";
  }

  public static String classMethod(){
    return "This is from class method";
  }

  public static void main(String[] args){

    System.out.println(MyClass.classMethod()); //will work

    System.out.println(MyClass.instanceMethod()); //compilation error

    MyClass myInstance = new MyClass();
    System.out.println(myInstance.instanceMethod()); //will work

  }
}