面向对象—封装

 问题: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);
    }
}	   

总结:封装的思想-->对客户隐藏其实现细节。采用封装的思想保证了类内部数据结构的完整性,应用该类的用户不能轻易地直接操作此数据结构,只能执行类允许公开的数据。这样避免了外部数据对内部数据的影响,提高了程序的可维护性。

猜你喜欢

转载自my.oschina.net/u/3842696/blog/1800014