在java中,类的属性是否必需把权限写成private?然后提供get,set来对属性进行访问?个人觉得,对于一些特别的属性,例如人的年龄,防止程序员把它设成负数,所以需要设置set函数,在函数中对设置内容进行过滤。但老师要求所有属性都设置成private,说这样才能体现封装的思想。但在大量的python程序中,对象的设计就没有必须设置成私有属性的习惯。所以这种方式是java的规范,还是所有面向对象设什都应该这么做?这样做有什么特别的好处吗?
2 回答
暮色呼如
TA贡献1853条经验 获得超9个赞
封装是面向对象三大特性之一,严格的说所有属性就应该private,每门语言对于面向对象支持的方式与程度可能存在差异,Java的规范严格,对于面向对象的支持非常好。
在保护数据的同时,通过setter和getter方法还能更精细的控制访问权限,如:对于某个属性只提供getter,那么这个属性就是只读属性,只允许在构造方法中初始化或者内部修改。
好好理解下封装的概念与作用。
添加回答
举报
0/150
提交
取消