因为类中的变量 声明为 私有的,在类外 是无法调用的,这是 set就起到了赋值的作用
而 get 则起到了 取值的作用。。 如果变量声明为 共有的(public) 就用不到get 和set 方法了
用存储器 赋值 取值 的好处 最明显的 就是 数据验证
例如: $name 必须为 字母或者中文,不能是 数字
你就可以在set方法里 加上验证判断。符合再赋值,否则抛出异常。
set 和get 并不是要一起用,取决于你对数据的保护,例如 $name你定义一个值后,不想被恶意程序,或者黑客改变,你就可以只定义get方法,而不定义set方法,这样 $name 就变为了一个只读属性。无法更改其值。同理 可以只定义set 而不定义get。。
因此 两个函数不必要一块使用,分开使用也不会出错
字段设为私有,是满足面向对象中封装性,
一个类不建议允许直接获取到另一个类的字段,
同时也不建议直接把自身字段暴露给另一个类,
本质上其实是为了隐藏具体实现,
同时,用get或者set方法来获取或者设置的话,可以在该方法中添加一些简单的验证逻辑,
比方说有个学生类,其中有个年龄字段,如果直接做成public的话,那么这个年龄字段可以设置为负值,
但是你做成了set方法的时候,你调用set设置年龄,那么你可以在set方法中去对为负数的年龄进行验证处理
Java面向对象类和类之间的关系教程:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)