剖析java类,快速理解实例字段等概念
#剖析Employee类
import java.time.LocalDate;
public class Employee {
private String name;
private double salary;
private LocalDate hireDay;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public LocalDate getHireDay() {
return hireDay;
}
public void setHireDay(LocalDate hireDay) {
this.hireDay = hireDay;
}
public Employee(String n, double s, int year, int month, int day){
name = n;
salary = s;
hireDay = LocalDate.of(year,month,day);
}
public void raiseSalary(double byPercent){
double raise = salary * byPercent / 100;
salary += salary;
}
}
看完代码会发现,这个类包含了一个构造器和四个方法。
public Employee(String n, double s, int year, int month, int day)
public String getName()
public double getSalary()
public LocalDate getHireDay()
public void raiseSalary(double byPercent)
三个实例字段:
private String name;
private double salary;
private LocalDate hireDay;
有两个实例字段本身就是对象:name是String类对象,hireDay是LocalDate类对象。
#构造器
public Employee(String n, double s, int year, int month, int day){
name = n;
salary = s;
hireDay = LocalDate.of(year,month,day);
}
可以看到构造器和类同名。当我们在构造Employee类对象时,构造器会运行,从而将实例字段初始化为所希望的
初始状态
例如使用下面代码创建Employee类的实例时:
new Employee("jiangchanghui",100000,1999,1,1)
将会把实例字段设置为:
name = "jiangchanghui";
salary = 100000;
hireDay = LocalDate.of(1999,1,1);
构造器与其他方法有一个重要的不同。构造器总是结合new运算符来调用。不能对一个已经存在的对象调用构造器来
达到重新设置实例字段的目的。
例如:
jaingchanghui.Employee("jiangchanghui",100000,1999,1,1); // ERROR
记住:
- 构造器与类同名
- 每个类可以有一个以上的类
- 构造器可以有0、1或者多个构造器
- 构造器没有返回值
- 构造器总是伴随着new运算符一起调用