advertisement

2014年3月3日

JAVA

(判斷式)? XX:YY;  判斷是成立則輸出XX
X與Y要同型別




emp1.isMarStatus()==false


建構子無繼承性

建構子:
建構物件用
同class名
沒有寫時產生預設建構子
可以自訂建構子=>自訂建構子則就不會有預設建構子
不具有繼承性
鏈條=>再new一個類別時會先鏈結到此類別的父類別,在建構子建構起來,在建構目前的建構子建構起來,故建構子無繼承性
建構子不可以寫void

overloading多載
兩個以上的建構子稱之
而多載是由不同參數來區別的

this()只能用再建構子的第一行
this()與super()不能同時寫

Business Rule Method
較為複雜的程序
可同時具有參數(可兩個以上)
同時可有回應值
一般為動詞命名

========================================================================

package com.tainan.gjun;
/**
 * 員工類別
 * @author User:eric chen
 *
 */
public class GjunEmployee {

//Attribute 封裝性
private String id;
private String name;
private int salary; //底薪
private boolean marStatus;
//自訂建構子Constructor (注入id name marStatus)
//空參數建構子(Constructor OverLoading--建構子多載)
public GjunEmployee(){//最好要寫空參數的建構子,如果有兒子指向父親,但父親沒有寫此航空參數的建構子,則逼的而子所建立的建構子無法指向空參數的父親,只能指向有參數的父親建構子,則兒子的建構子內也要補上相同的參數
//看不到一行 指向父親Object()先建構(編譯時產生-建構子鏈條)
}
//名稱與類別一樣 不會有回應值 也不能使用void
/**
* 員工建構子
* @param id:編號(String)
* @param name:姓名(String)
* @param marStatus:婚姻狀況(boolean)
*/
public  GjunEmployee(String id,String name,boolean marStatus){
//看不到一行 指向父親先建構(編譯時產生-建構子鏈條)
super();
//再建構我員工部分
this.id=id;//此物件的id=區域變數的id
this.name=name;
this.marStatus=marStatus;
}



//傳遞四個參數 連底薪都加以設定
public GjunEmployee(String id,String name,boolean marStatus,int salary)
{
//super();會編譯錯誤,因為兩個地方指向父親,故會兩次建構父親**
//指向另一個建構子編號/姓名/婚姻給他去設定 由他指向父親建構
this(id,name,marStatus);//this一定要放低一行,因為它需要先建構起來,下面才能使用salsry
// this.id=id;//此物件的id=區域變數的id
// this.name=name;
//this.marStatus=marStatus; 不使用此註解三行的原因是,若要更改必須兩邊都更改第30行與43行,而用this(id,name,marStatus);他會指向30行的故在從他那邊鏈結到父親
if(salary>30000){
this.salary = salary;
}else
{
this.salary=30000;
}
}
/**
* 取出員工底薪
* @return:薪資 int
*/
public int getSalary() {
return salary;
}
/**
* 設定員工底薪
* @param salary:底薪 int
*/
public void setSalary(int salary) {
//合理性
if(salary>30000){
this.salary = salary;
}else
{
this.salary=30000;
}
}
//readonly唯讀屬性getter
/**
* 取出員工編號
* @return 編號 String
*/
public String getId() {
return id;
}
/**
* 取出員工姓名
* @return:姓名 String
*/
public String getName() {
return name;
}
/**
* 取出婚姻狀況
* @return:狀況 boolean
*/
public boolean isMarStatus() {
return marStatus;
}
public void setId(String id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setMarStatus(boolean marStatus) {
this.marStatus = marStatus;
}

}

沒有留言:

張貼留言

文章有誤或有問題麻煩您留言告知! 謝謝您~~