Java基础复习---详解EmployeeTest

package Extends;

import java.util.*;
import java.util.GregorianCalendar;

public class EmployeeTest {
	public static void main(String[] args) {

		// 构造一个Employee数组,并填入了三个雇佣对象
		Employee[] staff = new Employee[3];
		staff[0] = new Employee("DBY", 7500, 1817, 12, 15);
		staff[1] = new Employee("saa", 7500, 1817, 12, 15);
		staff[2] = new Employee("ddd", 7500, 1817, 12, 15);

		for (Employee e : staff)
			e.raiseSalary(5);

		for (Employee e : staff)
			System.out.println("name=" + e.getName() + ",salary="
					+ e.getSalary() + ",hiraDay=" + e.getHireDay());
	}
}

class Employee {
	// 3个实例域用来存放将要操作的数据,
	//关键字private确保只有Employee类自身的方法能够访问这些实例域
	//两个实例域本身就是对象,name域是String对象,hireDay是Date对象
	private String name;
	private double salary;
	private Date hireDay;

	// 一个构造器
	// 构造器与类同名,在构造Employee类的对象时,构造器会运行,以便将实例域初始化为所希望的状态
	//与其他方法不同,构造器,总伴随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();

	}

	// 4个方法,关键字public意味着任何类的任何方法都可以调用这些方法
	//方法用于操作对象以及存取它们的实例域
	
	//这三个是典型的访问器方法
	//由于它们值返回实例域值,因此又称为域访问器
	public Date getHireDay() {
		// TODO Auto-generated method stub
		return hireDay;
	}

	public double getSalary() {
		// TODO Auto-generated method stub
		return salary;
	}

	public String getName() {
		// TODO Auto-generated method stub
		return name;
	}
	//将调用这个方法的对象的salary实例域设置为新值,新值为通过该方法得到的salary值
	//raiseSalary方法中有两个参数
	//第一个为隐式参数,是出现在方法名前的Employee类对象e.raiseSalary(5);
	//第二个为显示参数,位于方法名后面括号中的数值double byPrecent,即后者出现在方法的声明中
	public void raiseSalary(double byPrecent) {
		// TODO Auto-generated method stub
//		double raise = this.salary * byPrecent / 100;
//		this.salary += raise; 关键字this表示隐式参数,this.salary也就是实例域
		double raise = salary * byPrecent / 100;
		salary += raise;
	}

}

你可能感兴趣的:(Java)