class Employee {
int DOB;
int eid;
String name;
double salary;
System.out.println("Employee class");
}
如果我在方法中写System.out.println
,它似乎有效。但不是直接在课堂上写的。为什么需要一种方法?
答案 0 :(得分:5)
它与执行的任何其他代码相同 - 它必须在方法内! (是的,是的,对于纯粹主义者,我还包括构造函数和静态/实例初始化块。)考虑一下 - 如果它不在你提出的方法或其他相关代码块中,那么该代码何时获得执行?这没有多大意义。你不能执行一个类本身,你只能执行该类中包含的特定方法/构造函数等。
外部方法和构造函数声明允许的唯一内容是字段声明。由于System.out.println()
不是字段声明,因此不允许使用。
答案 1 :(得分:4)
它需要位于要执行的可执行代码块中。否则无法知道何时执行它。
它不一定是一种方法。您可以使用其他块,例如Static
块和Instance
块。
例如,如果您希望在ClassLoader加载类时执行代码,则可以使用静态块:
public class MyClass{
static{
System.out.println("MyClass loaded");
}
}
如果您希望在创建该类的新实例时执行代码,则可以使用和实例阻止:
public class MyClass{
{
System.out.println("New instance of MyClass created");
}
}
重要的是要说你可以根据需要拥有尽可能多的这些块,并且它们可以出现在类体中的任何位置。运行系统将保证它们按照它们在您的类中出现的顺序执行
另见:
答案 2 :(得分:2)
当它在一个类中时,但在任何方法之外,你不能调用它,你必须创建方法例如getData()并调用
Employee e = new Employee().getData();
正确撰写您的信息。
答案 3 :(得分:1)
这是另一种称为初始化块的方法。每次创建"Employee class"
new Employee
class Employee {
int DOB;
int eid;
String name;
double salary;
{
System.out.println("Employee class");
}
}
关于你的问题
为什么 System.out.println 必须在方法内?
Java编译器旨在限制此类调用。
这不仅适用于System.out.println
,而且适用于您从班级调用的任何方法
尝试调用MySystem.myout.myprintln();
//请记得事先创建这样的类。
尝试调用自己的类方法。
答案 4 :(得分:0)
不要将Java类视为按顺序执行的内容,读入每一行。将Class视为一种奇特的工具。像
public class Bathtub {
private int waterLevel;
public void drain() {
waterLevel = 0;
}
public void fill(int newWater) {
waterLevel += newWater;
}
public void playWithDuckies() {
System.out.println("Whee this is fun!!");
}
}
每种方法都可以用浴缸来完成。想想瑞士军刀,你有剪刀,刀,镊子,开瓶器。当你打电话时,每个人都有目的。
如果你将System.out.println()
置于其中一个工具之外,你就不知道它何时会发生,或者它会发生什么,或者它是什么工具。
答案 5 :(得分:0)
System类包含几个有用的类字段和方法。它无法实例化。
System类提供的功能包括标准输入,标准输出和错误输出流;访问外部定义的属性和环境变量;加载文件和库的方法;以及一种快速复制数组部分的实用方法。
out是标准输出流,println是方法。
您不能只在方法之外运行代码,除非它是变量/常量声明,类声明