自定义类
Employee
该自定义类代码如下:
class Employee
{
private String name;
private double salary;
private LocalDate hireDay;
public Employee(String n, double s, int year, int month, int day)
{
name = n;
salary = s;
hireDay = LocalDate.of(year, month, day);
}
public String getName()
{
return name;
}
public double getSalary()
{
return salary;
}
public LocalDate getHireDay()
{
return hireDay;
}
public void raiseSalary(double byPercent)
{
double raise = salary * byPercent / 100;
salary += raise;
}
}
测试代码如下:
public class EmployeeTest
{
public static void main(String[] args)
{
// fill the staff array with three Employee objects
Employee[] staff = new Employee[3];
staff[0] = new Employee("Carl Cracker", 75000, 1987, 12, 15);
staff[1] = new Employee("Harry Hacker", 50000, 1989, 10, 1);
staff[2] = new Employee("Tony Tester", 40000, 1990, 3, 15);
// raise everyone's salary by 5%
for (Employee e : staff)
e.raiseSalary(5);
// print out information about all Employee objects
for (Employee e : staff)
System.out.println("name=" + e.getName() + ",salary=" + e.getSalary() + ",hireDay="
+ e.getHireDay());
}
}
这两个类是存放在一个文件中的:Employee类和带有public访问修饰符的EmployeeTest类。EmployeeTest类包含了main方法。
- 源文件名时EmployeeTest.java,这是因为文件名必须与public类的名字相匹配。
- 在一个源文件中,只能有一个公共类,但可以由任意数目的非公共类。
编译该文件后,会产生两个类文件:EmployeeTest.class以及Employee.class.
执行该程序:
java EmployeeTest
字节码解释器开始运行EmployeeTest类的main方法中的代码。
多个源文件的使用
习惯将每一个类存放在一个单独的源文件中。例如:将Employee类存放在文件Employee.java中,将EmployeeTest类存放在文件EmployeeTest.java中。
如何编译多个源文件,一种是使用通配符调用Java编译器:
javac Employee*.java
或者:
javac EmployeeTest.java
当java编译器发现EmployeeTest.java使用了Employee类,它会查找名为Employee.class的文件。如果么有找到这个文件,就会自动搜索Employee.java,然后,对它进行编译。更重要的是,如果Employee.java版本较已有的Employee.class文件版本更新,java编译器就会自动地重新编译这个文件。