问题:age在直接被其他程序创建对象后访问,造成安全隐患。
class Person{
int age; //定义成员变量
void speak(){ //定义成员方法
System.out.println("age="+age);
}
}
class PersonDemo{
public static void main(String[] args){
Person p=new Person(); //创建Person类的一个实例化对象
p.age=19; //将类成员变量赋值为19
p.speak(); //使用对象调用类成员
}
}
解决:封装,让age不被访问
class Person{
private int age; //为age设置访问权限
public void show(int a){
age = a;
if(a>1&&a<130){
speak();
}else{
System.out.println("数据不存在");
}
}
void speak(){
System.out.println("age="+age);
}
}
class PersonDemo{
public static void main(String[] args){
Person p=new Person();
p.show(19);
}
}
总结:封装的思想-->对客户隐藏其实现细节。采用封装的思想保证了类内部数据结构的完整性,应用该类的用户不能轻易地直接操作此数据结构,只能执行类允许公开的数据。这样避免了外部数据对内部数据的影响,提高了程序的可维护性。