封装与隐藏
为什么要引入封装性?
- 封装的意义在于保护信息,阻止外部的定义随意修改访问代码
- 隐藏一些细节信息,用户只需要知道如何操作就可以了
- 有助于建立各个系统之间的耦合关系,提高系统独立行。
- 提高代码复用
-
封装性与抽象类
抽象和封装的不同点:
抽象和封装是互补的概念。一方面,抽象关注对象的行为。另一方面,封装关注对象行为的细节。一般是通过隐藏对象内部状态信息做到封装,因此,封装可以看成是用来提供抽象的一种策略。 -
封装的具体体现
封装可以通过权限修饰符,private来防止外部访问成员变量和方法,通过get、set来进行调用,
public class Person{
/**
* 修改属性的可见性来限制对属性的访问(一般限制为private)
* name和age属性设置为私有的,只能本类才能访问,其他类都访问不了,如此就对信息进行了隐藏。
*/
private String name;
private int age;
/**
* public方法是外部类访问该类成员变量的入口。
* 通常情况下,这些方法被称为getter和setter方法。
* 因此,任何要访问类中私有成员变量的类都要通过这些getter和setter方法。
*/
public int getAge(){
return age;
}
// 对每个值属性提供对外的公共方法访问,也就是创建一对赋取值方法,用于对私有属性的访问。
public String getName(){
return name;
}
public void setAge(int age){
// 采用 this 关键字是为了解决实例变量(属性age)和局部变量(参数age)之间发生的同名的冲突。
this.age = age;
}
public void setName(String name){
this.name = name;
}
}