日期:2014-05-20  浏览次数:20816 次

怎么理解封装啊?
把成员变量private了,但是方法却是public的,不是一样可以被外部类调用并篡改吗?初学不懂,请高手点拨几下。最好能写出体现封装好处的代码,对比着写并打上注释,谢啦

------解决方案--------------------
我的理解是①设立public方法,一定是此成员变量需要被外界调用的。②此成员变量不希望被任意修改,所以设成了private。其实并不矛盾,与直接将成员变量public不同,这种方法可以通过修改方法来限制外部的修改
Java code
public class Person {
    private int age;
    
    public int getAge() {
        return age;
    }
    
    public void setAge(int age) {
        if(age < 0 || age > 1000)
            throw new RuntimeException("年齡異常");
        this.age = age;
    }
}