把成员变量private了,但是方法却是public的,不是一样可以被外部类调用并篡改吗?初学不懂,请高手点拨几下。最好能写出体现封装好处的代码,对比着写并打上注释,谢啦
解决方案 »
- 两个圆互相碰撞之后的速度
- ObjectInputStream ObjectOutputStream 问题求助
- 能不能给Tomcat添加一个新的Classpath
- 关于受检查异常
- java 为什么我从串口没有接收到完整的字符串 而且每次接收的字符串个数都不同
- 希望有经验的高手能指点一下
- 范型ArrayList数组的问题
- 为什么使用函数 Runtime.getRuntime().exec 时出错?谢谢
- [在线等待]初学:一个简单的JDBC问题
- 如何指定用javac编译生成类的存放路径。(最好不要告诉我再生成之后再把文件流重新到出这种)
- 线程同步问题,分析下程序运行结果
- tomcat连mysql报这个错是怎么回事?
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
if(age < 0 || age > 1000)
throw new RuntimeException("年齡異常");
this.age = age;
}
}通过对age的判断,来决定是否让外界修改age。希望对你理解有帮助-。-
还有一个原因就是只暴露设值函数方便调试维护,在eclipse这样的工具中,我只要ctrl+shift+G就可以查看setAge方法在哪被调用到,从而可以方便跟踪问题,而直接暴露字段,客户端可以肆意操作,如*=,+,-,*,/,=,++等操作,完全查询出有哪些地方修改了该字段是比较困难的.