假设我们有一组工人,我们想要给他们设定四个属性,一个是工人号、一个是姓名、一个是工薪、一个是部门,我们想封装好一个工人类,然后我们在主类里面实例化每一个工人对象,然后调用一下一个showmsg方法用来显示工人的基本信息。
提示:这里面我们就想在实例化每个工人时调用不同的工人构造方法,用来加强对构造函数的理解和学习。
下面附工人信息代码:
class Employee
{
private String empno;
private String name;
private float salary;
private String dept;
public Employee(){
}
public Employee(String no){
this.setEmpno(no);
this.setName("无名氏");
this.setSalary(0.0f);
this.setDept("未定");
}
public Employee(String no,String na){
this.setEmpno(no);
this.setName(na);
this.setSalary(0.0f);
this.setDept("后勤");
}
public Employee(String no,String na,float sa,String d){
this.setEmpno(no);
this.setName(na);
this.setSalary(sa);
this.setDept(d);
}
//显示信息
public void showMsg(){
System.out.println("员工信息为:");
System.out.println("\t|-员工号:"+empno);
System.out.println("\t|-姓名:"+name);
System.out.println("\t|-新水:"+salary);
System.out.println("\t|-部门:"+dept);
}
//代码之后必须有setter和getter
public void setEmpno(String a){
empno=a;
}
public void setName(String n){
name=n;
}
public void setSalary(float s)
{
if (s>=0.0f)
{
salary=s;
}
}
public void setDept(String d)
{
dept=d;
}
public String getEmpno()
{
return empno;
}
public String getName()
{
return name;
}
public float getSalary()
{
return salary;
}
public String getDept()
{
return dept;
}
}
//主类
public class ooDemo10 {
public static void main(String args[]){
Employee e1=new Employee("e001","王乾");
Employee e2=new Employee("e002","王乾",10000.0f,"开发部");
Employee e3=new Employee("e003");
Employee e4=new Employee();
e1.showMsg();
e2.showMsg();
e3.showMsg();
e4.showMsg();
}
}
我们来看一下效果图:
实际上我们分别调用了工人类的四个构造函数,在初始化对象时每一个构造函数都被调用了一次,然后把信息都显示出来,这个时候我们调用了showmsg方法,这样就是我们看到上面的效果,需要注意的是调用默认构造函数的时候,由于没有参数传递,所以工人的属性值都是默认值,也就是浮点型数据都是0.0,而字符串类型数据第一山谷null。