Java新手攻略封裝(一)

1.封裝除了能把大量代碼抽象以外,也是減少內部屬性被實例化後,可以在外部直接進行修改。

舉個例子 定義1個wuxia類,wuxia類下面有1個類屬性,是1個int類型的is_join,is_join的數據定義了武俠世界裏的人物是否出世。如果出世了,就可以在世界裏的劇情,任務,副本等地方可以使用到他。

public class Wuxia
{
	int is_join =0;  //is_join status:0 未出世 1出世 2已死亡 3 已退隱
	public static void main(String[] args){
		Wuxia wx =new Wuxia()
		wx.is_join =1;
		System.out.println("is_join當前狀態是"+wx.is_join)
		//省略代碼
	}
}

可是如果直接寫成上面的,很容易被實例化的類.引用類屬性 並且修改了數值(主要擔心被修改成了超過3的,比如4,那後面邏輯就錯了,請看is_join的註釋)。那麼如何讓這個屬性安全點,也是一樣的,一個get,一個用set思想,get獲取不修改,set會進行修改。

public class Wuxia
{
	private int is_join =0;  //is_join status:0 未出世 1出世 2已死亡 3 已退隱
	
	public void joined(){
		if(is_join=0){
		System.out.println("角色未出世"+"還無法獲得")
		}
		else if(is_join=1){
		System.out.println("角色已出世"+"在遊戲內可見")
		//加1個讀取數據庫的方法就可以判斷自己有沒有。這個是高級後延伸寫的
		}
		else if(is_join=2){
		System.out.println("角色已死亡"+"在遊戲內不可見了")
		}
		//...其他3和3以外的省略
	}

	//將你的實例變量標記爲私有的,並提供公有的getter與setter來控制存取動作
	public int getIs_join(){
		return is_join;
	}	

	public void setIs_join(int join){
		if(s<4){ //超過3 就使用默認的is_join=0
			is_join =join;
		}
	}
	

	public static void main(String[] args){
		Wuxia wx =new Wuxia();
		wx.is_join =1;
		System.out.println("is_join當前狀態是"+wx.is_join)
		//省略代碼
	}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章