用户自定义类——以雇员工资系统为例

用户自定义类——以雇员工资系统为例

  • 自定义类
    以工资系统的java实现为例
    一个源文件只能有一个公共类,但可以有无数个非公共类,但文件名必须与public类的名字相匹配
    public表示可以被任何方法调用,private表示只有Employee类的方法可以访问这些实例字段
import java.time.*;
//源文件名是EmployeeTest.java因为文件名必须与public类的名字相匹配
//该程序含有两个类:Employee类以及带public修饰词的EmployeeTest类
//一个源文件只能有一个公共类,但可以有无数个非公共类
public class EmployeeTest {
    public static void main(String[] args) {
        Employee[] staff = new Employee[3];
		//构造器通常结合new运算符调用,不能通过调用构造器来重新设置实例字段
        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 );
       
        for(Employee e:staff)   e.raiseSalary( 5 );
        for(Employee e:staff)   System.out.println("name = "+ e.getName() + ",salary = " + e.getSalary());
        //getSalary、getName方法在Employee类中,将e的数据类型设定为Employee类,故可以直接访问
    }
}

//构造一个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;
    }
}
  • 若将每个源文件储存在单独的类中,调用Employee类的代码如下
java Employee*.java
  • 显性参数和隐形参数
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值