类之间的关系
依赖:如果一个类的方法操作了另一个类的对象
聚合/关联:类A的对象包含类B的对象
继承:
任何对象变量的值都是指向存储在别处的对象的一个引用。
所有Java对象都存储在堆中
源文件中只能有一个公有类,但可以包含任意多的非公有类。源文件的名字必须公有类的名字匹配。
public class EmployeeTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Employee[] staff = new Employee[3];
staff[0] = new Employee("tom", 40000);
staff[1] = new Employee("dick", 60000);
staff[2] = new Employee("harry", 65000);
for( int i = 0; i < staff.length; i++) {
Employee e = staff[i];
e.setId();
System.out.println(e.getName() + ", s=" + e.getSalary() + ", id=" + e.getId());
}
}
}
class Employee{
private String name;
private double salary;
private int id;
private static int nextId = 1;
public Employee(String n, double s) {
name = n;
salary = s;
id = 0;
}
public String getName() {
return name;
}
public double getSalary() {
return salary;
}
public int getId() {
return id;
}
public void setId() {
id = nextId++;
}
public static int getNextId() {
return nextId;
}
}
编译这段源代码时,编译器会创建两个类文件EmployeeTest.class和Employee.class
如果每个类放在一个单独的源文件,有两种编译方法
- 使用通配符来调用Java编译器:javac Employee*.java
- 使用javac EmployeeTest.java,尽管Employee.java从来不会被显示地编译
静态字段属于这个类,而不属于单个对象
静态方法是不向对象施加操作的方法