把成员变量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; }}