1.封装的作用
通过使用权限修饰符,我们可以限定类的成员的被访问权限。因为在很多场景下,我们需要确保我们对属性值的操作均是有效操作,不能违背某些规则。
2.如何封装
- 使用权限修饰符
- 使用private作用在属性上,关闭直接访问的入口
- 使用public作用在方法上,提供调用的入口
- 定义与属性存取相关的方法
- get代表取用:既然是取值,那么就要把属性值进行返回,方法的返回值类型与属性类型相同
- set代表存储:既然是存值,那么就要在参数列表中接收想要存入的值,类型与属性类型相同
3.举例
比如我们定义一个Person的年龄,具有age属性。
如果我们不封装:
public class Person{
public int age;
}
public class Test{
public static void main(String[] args){
Person person = new Person();
person.age = -1;//此时我们可以给年龄赋值成任意数,这不合理。
}
}
如果我们封装:
public class Person{
private int age;
public void setAge(int age){
if(this.age>0 && this.age<200){
this.age = age;
}else{
System.err.println("输入年龄不合法");
}
}
public int getAge(){
return this.age;
}
}
public class Test{
public static void main(String[] args){
Person person = new Person();
person.age = 18;//此时我们Age的值只能满足范围:0<age<200,否则报错。
}
}