面向对象(六)封装——面向对象的三大特征之一

思考:下面的代码有什么不合理的地方?

Dog d = new Dog();
d.health = -1000; 

问题:属性值可以被任何人任意访问和修改,可能会设置不合理赋值,安全性差。

如何解决?

封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问

封装两个大致原则:

1.把所有的属性藏起来

2.把尽可能多的东西藏起来,对外提供便捷的接口

如何实现封装?

1.修改属性的可见性:设为private,防止错误的属性修改

2.创建公有的getter/setter方法:用于属性的读写(开放的“接口”)

3.在getter/setter方法中加入属性控制语句:对属性值的合法性进行判断

课堂举例:

使用封装修改狗狗类,使健康赋值在狗狗类中进行判断。

关键代码:

 	private int health;
    public int getHealth(){
        return health;
    }
    public void setHealth(int health){
        if (health<0||health>100){
            System.out.println("狗狗的健康只能在0-100之间!");
            this.health = 60;
            return;
        }
        this.health = health;
    }
课堂练习:

使用封装实现电子宠物系统的企鹅类正确输入健康值和亲密度

·保证健康值的有效性(0~100),否则取默认值60

·保证亲密度的有效性(0~100),否则取默认值60

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值