假設我們有一組工人,我們想要給他們設定四個屬性,一個是工人號、一個是姓名、一個是工薪、一個是部門,我們想封裝好一個工人類,然后我們在主類里面實例化每一個工人對象,然后調用一下一個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。