黑马训练营-----封装的使用


      ------- android培训java培训、期待与您交流! ----------


如何进行封装?

封装的举例:

class Person
{
	int age;
	void speak()
	{
		System.out.println("age = " + age);
	}
}
class PersonDemo
{
	public static void main(String[] args)
	{
		Person p = new Person();
		p.age = -20;//这种情况不符合现实逻辑情况,出现这种情况的原因是该成员被直接访问,造成了安全隐患
		p.speak();
	}
}

由于上面的代码这样做造成了安全隐患,由此,将age成员进行封装,不让外部进行访问,

代码如下:

class Person
{
	private int age;//这时,外部就不能能访问,所以需要提供访问方式
	void speak()
	{
		System.out.println("age = " + age);
	}
}
class PersonDemo
{
	public static void main(String[] args)
	{
		Person p = new Person();
		p.age = -20;//当代码读到这里时就会报错,因为外部是么有办法访问到这个成员的
		p.speak();
	}
}
将age私有化以后,类以外建立了对象也不能够直接访问,但是,人应该有年龄,那么就需要实在Person 类中提供公共访问方式

代码如下:

class Person
{
	private int age;
	public void setAge(int a)
	{
		age = a;
	}
	public int getAge()
	{
		return age;
	}
	void speak()
	{
		System.out.println("age = " + age);
	}
}
class PersonDemo
{
	public static void main(String[] args)
	{
		Person p = new Person();
		p.age (20);
		p.speak();
	}
}

一个成员通常会对应两个访问方式(设置、获取)                      注:封装不是私有,私有仅仅是封装的一种表现形式

之所以对外提供公共访问方式是因为可以控制用户传递的数据。

就象下面这段代码

class Person
{
	private int age;
	public void setAge(int a)//单纯遮掩的封装并不能保证age依然处于正常的现实年龄值之内,所以,需要进行判断
	{
		if (a > 0 && a < 130)
			age = a;
	}
	public int getAge()
	{
		return age;
	}
	void speak()
	{
		System.out.println("age = " + age);
	}
}
class PersonDemo
{
	public static void main(String[] args)
	{
		Person p = new Person();
		p.age (20);
		p.speak();
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值