import java.util.Date;
import java.util.GregorianCalendar;
/**
*
* @author asus
*
*/
public class EmployeeTest{
public static void main(String[] args)
{
Employee[] staff =new Employee[3];
staff[0]=new Employee("mikes",1000,2017,9,1);
staff[1]=new Employee("cindy",2000,2018,10,1);
staff[2]=new Employee("paul",3000,2018,10,1);
for(Employee e:staff) {
e.raiseSalary(5);//将e的salary域值增加5%,即double raise=e.salary*5/100;e.salary+=raise;
}
for (Employee e:staff) {
System.out.println("name="+e.getName()+"slary="+e.getSalary()+"hireday="+e.getHireDay());
}
}
}
class Employee{
public Employee(String n,double s,int year,int month,int day)
{
name =n;
salary=s;
GregorianCalendar calendar=new GregorianCalendar(year,month-1,day);
hireDay=calendar.getTime();
}
public String getName() {
return name;
}
public double getSalary() {
return salary;
}
public Date getHireDay() {
return (Date)hireDay.clone();
}
/*方法用于操作对象以及存取它们的实例域。将调用这个方法的对象的salary实例域设置为新值。*/
public void raiseSalary(double byPercent) {
double raise=this.salary*byPercent/100;//this表示隐式参数
this.salary+=raise;
}
private String name;
private double salary;
private Date hireDay;
}
1.与类同名
2.每个类可以有一个以上的构造器
3.构造器可以有0,1,1个以上的参数
4.构造器没有返回值
5.构造器总是伴随new操作符一起调用
public Employee(String n,double s,int year,int month,int day)//与类同名
{
name=n;//构造器中不要命名与实例域同名的变量
salary=s;
GregorianCalendar calendar=new GregorianCalendar(year,month-1.day);
hireday=calendar.getTime();
}
private String name;
private double salary;
private Date hireDay;//实例域存放要操作的数据
new Employee("jack",10000,1997,3,2);//构造器总是伴随new操作符一起调用