Java-封装

为什么要使用封装?

此处的代码有何缺陷?

Dog d = new Dog();
d.health = -10;//属性随意访问,狗狗的健康值赋值为-10,不合理

如何解决?

使用封装

什么是封装

面向对象三大特征之一—封装
封装的概念

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

封装的原则

隐藏对象的属性和实现细节,仅对外公开借口,并且控制访问级别

如何实现封装

在这里插入图片描述

封装的好处

降低使用系统的风险,避免错误的属性赋值。降低代码之间的耦合度,提高程序的重用性可维护性。
例如:输入狗狗的健康度,限制为0-100,超过则默认为60.

public class Dog {
	private int health;

	public void setHealth(int health) {
		if(health < 0 || health > 100){  //如果health的值小于0或者超过100,则默认为60
			health = 60;
		}
		this.health = health;
	}
	public int getHealth() {
		return health;
	}
}

通过一个测试类来实现输入狗狗的健康值

public static void main(String[] args) {
		Dog d = new Dog();
		d.setHealth(4396);			//输入狗狗的健康值为7酱,呸,4396
		System.out.println("狗狗的健康值为:"+d.getHealth());
		d.setHealth(50);			 //输入狗狗的健康值为50
		System.out.println("狗狗的健康值为:"+d.getHealth());
	}

结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值