java类封装的问题

在java中,类的属性是否必需把权限写成private?然后提供get,set来对属性进行访问?

个人觉得,对于一些特别的属性,例如人的年龄,防止程序员把它设成负数,所以需要设置set函数,在函数中对设置内容进行过滤。

但老师要求所有属性都设置成private,说这样才能体现封装的思想。但在大量的python程序中,对象的设计就没有必须设置成私有属性的习惯。

所以这种方式是java的规范,还是所有面向对象设什都应该这么做?这样做有什么特别的好处吗?


长风秋雁
浏览 624回答 2
2回答

暮色呼如

封装是面向对象三大特性之一,严格的说所有属性就应该private,每门语言对于面向对象支持的方式与程度可能存在差异,Java的规范严格,对于面向对象的支持非常好。在保护数据的同时,通过setter和getter方法还能更精细的控制访问权限,如:对于某个属性只提供getter,那么这个属性就是只读属性,只允许在构造方法中初始化或者内部修改。好好理解下封装的概念与作用。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java