鸿蒙初开,开天辟地
权限修饰符面向对象开发中的应用
这边我们举一个实在的例子,暂时为什么使用权限修饰符,以及权限修饰符怎么用
class BankCard{ private money:number = 0; constructor(money:number){ this.money = money; } public push(send:number){ if(send > 0){ this.money += send; } else{ console.log("这肯定不对劲,怎么会存入负数呢"); } } public pop(take:number){ if(take > 0){ if(this.money > take){ this.money -= take; } else{ console.log("没有那么多余额了"); } } else{ console.log("取款数量要大于0"); } } public getMoney(){ return this.money; } } // 开户存入100元 var card:BankCard = new BankCard(100); // 发工资了,又存点钱进去 card.push(5000); // 心情好,取点钱买东西 card.pop(3000); console.log(card.getMoney());
弄个银行卡例子
这里我们将银行卡类的存款设置为private,不对外暴露,保证不会存在有hack进入后,通过侵入式的代码直接修改我们属性的可能,因为对于非这个类的情况下,是无法操作也不可见这个值的
我们只对外暴露获取值的方法,以及正常的存取款方法,这样就保证了,对象的数据安全
public push(send:number){ if(send > 0){ this.money += send; } else{ console.log("这肯定不对劲,怎么会存入负数呢");//正常来说这里应该是抛异常发警告信息 } }public pop(take:number){//取款方法 if(take > 0){ if(this.money > take){ this.money -= take; } else{ console.log("没有那么多余额了"); } } else{ console.log("取款数量要大于0"); } }public getMoney(){//获取余额的方法 return this.money; }综上所述,我们在实际开发中,应当尽力避免直接获取或是操作值的出现,我们需要把所有涉及到属性值的操作封装为对象的方法,让对象去操作而不是直接修改




被折叠的 条评论
为什么被折叠?



