假设我们有一组工人,我们想要给他们设定四个属性,一个是工人号、一个是姓名、一个是工薪、一个是部门,我们想封装好一个工人类,然后我们在主类里面实例化每一个工人对象,然后调用一下一个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。