java用户自定义类型_java===java基础学习(7)---用户自定义类

packagetestbotoo;import java.util.*;public classEmployeeTest

{public static voidmain(String[] args)

{

Employee[] staff= new Employee[3];

staff[0] = new Employee("liming", 75000, 1987, 12, 15);

staff[1] = new Employee("xiaoming", 70000, 1999, 12, 12);

staff[2] = new Employee("xiaoli", 20000, 2001, 12, 23);for (Employee e :staff) //e---Element (在集合中使用,因为集合中存放的是元素),这里和python中的i一样,for i in list: i.raiseSalary(5)

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

System.out.println("name="+e.getName()+",salary="+e.getSalary()+",hireDay="+e.getHireDay());

}

}classEmployee{privateString name;private doublesalary;privateDate hireDay;public Employee(String n, double s, int year, int month, intday){

name=n;

salary=s;

GregorianCalendar calendar= new GregorianCalendar(year, month -1, day);

hireDay=calendar.getTime();

}publicString getName(){returnname;

}public doublegetSalary(){returnsalary;

}publicDate getHireDay(){returnhireDay;

}public void raiseSalary(doublebyPrecent){double raise = salary * byPrecent / 100;

salary+=raise;

}

}

Employee类包含一个构造器和4个方法:

public Employee(String n, double s, int year, int month, int day)

public String getName()

public double getSalary()

public Date getHireDay()

public void raiseSalary( double byPrecent)

这个类的所有方法都被标记为public, 关键字public意味着任何类的任何方法都可以调用这些个方法(共有四种访问级别)

实例域,强烈建议实例域标记为private:

private String name;

private double salary;

private Date hireDay;

构造器,构造器和类同名,在构造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();

}

构造器与类同名

每个类可以有一个以上的构造器

构造器可以有0个,1个或者多个参数

构造器没有返回值

构造器总是伴随着new操作一起调用

隐式参数与显示参数:

raiseSalary 方法有两个参数,第一个为隐式参数,出现在方法名前的Employee类对象。第二个参数位于方法名后面括号中的数值,这是一个显式参数

显示参数明显的列在方法声明中的,例如double byPrecent

在每一个方法中,关键字this表示隐式参数。如果需要,可以使用这样的方式编写:

public void raiseSalary(double byPrecent){

double raise = salary * byPrecent / 100;

salary += raise;

}

封装的优点:

getName(), getSalary(), getHireDay()

都是典型的访问器方法,由于只返回实例域值,因此又称域访问器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值