为什么System.out.println必须在方法内?

use*_*650 3 java

class Employee {    
    int DOB;
    int eid;
    String name;
    double salary;
    System.out.println("Employee class");
}
Run Code Online (Sandbox Code Playgroud)

如果我在System.out.println里面写一个方法,它似乎工作.但不是直接在课堂上写的.为什么需要一种方法?

Rod*_*aki 7

它需要在要执行的可执行代码块内。否则没有办法知道什么时候执行它。

它不一定是一种方法。您可以使用其他块,例如Static块和Instance块。

例如,如果您希望在 ClassLoader 加载类时执行代码,则可以使用静态块:

public class MyClass{
    static{
        System.out.println("MyClass loaded");
    }
}
Run Code Online (Sandbox Code Playgroud)

如果您希望在创建该类的新实例时执行代码,您可以使用和实例块:

public class MyClass{
    {
        System.out.println("New instance of MyClass created");
    }
}
Run Code Online (Sandbox Code Playgroud)

重要的是,您可以根据需要拥有尽可能多的这些块,并且它们可以出现在类主体中的任何位置。运行时系统将保证它们按照它们在您的类中出现的顺序执行

也可以看看:


Mic*_*rry 6

它与执行的任何其他代码相同 - 它必须在方法内!(是的,是的,对于纯粹主义者,我还包括构造函数和静态/实例初始化块.)考虑一下 - 如果它不在你提出的方法或其他相关代码块中,那么该代码何时获得执行?这没有多大意义.你不能执行一个类本身,你只能执行该类中包含的特定方法/构造函数等.

外部方法和构造函数声明允许的唯一事物是字段的声明.由于System.out.println()不是字段声明,因此不允许.