【笔记】Java程序入口和源文件声明规则

2,055 阅读2分钟

一、Java程序入口

程序都是从main方法开始执行。为了能运行程序,必须包含main方法,这是程序的入口。
例:

public class HelloWorld {
	public static void main(String []args) {
        System.out.println("Hello World");
    }
}

若源文件中的类名与文件名一致,那么这个类的类名默认为public,此时可以省略类名前面的public,程序入口main函数必须写在此类中。
那么能否有另一个public类呢?

二、java源文件的声明规则

当在一个源文件中定义多个类,并且还有import语句和package语句时,要特别注意这些规则:

  • 一个源文件中只能有一个public类。

  • 一个源文件可以有多个非public类。

  • 源文件的名称应该和public类的类名保持一致。例如:源文件中public类的类名是Employee,那么源文件应该命名为Employee.java。

  • 如果一个类定义在某个包中,那么package语句应该在源文件的首行

package mytest;
import java.io.*;
class EmployeeTest {
}
  • 如果源文件包含import语句,那么应该放在package语句和类定义之间。如果没有package语句,那么import语句应该在源文件中最前面

  • import语句和package语句对源文件中定义的所有类都有效。在同一源文件中,不能给不同的类不同的包声明。

  • 类有若干种访问级别,并且类也分不同的类型:抽象类和final类等。这些将在后续章节介绍。

除了上面提到的几种类型,Java还有一些特殊的类,如内部类、匿名类。

一个简单的例子,在该例子中,我们创建两个类 Employee 和 EmployeeTest,分别放在包 mytest 和 mytest1 中。

package mytest;
import java.io.*;
public class Employee {
	String name;
	int age;
	double salary;
	
	public Employee(String name) {
		this.name = name;
	}
	public void setAge(int setAge) {
		age = setAge;
	}
	public void setSalary(double setSalary) {
		salary = setSalary;
	}
	
	public void printlnAttr() {
		System.out.println("姓名:"+name);
		System.out.println("年龄:"+age);
		System.out.println("薪水:"+salary);
	}

}
package mytest1;
import java.io.*;

import mytest.Employee;

class EmployeeTest {
	public static void main(String []args) {
		System.out.println("my");
		Employee xiaoming = new Employee("xiaoming");
		xiaoming.setAge(10);
		xiaoming.setSalary(12.5);
		xiaoming.printlnAttr();
		
	}
	
}