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)
		//省略代码
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值