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