【发布时间】:2013-08-11 01:00:09
【问题描述】:
我已经编写 Java 代码大约 4 个月了。我刚开始使用介绍书的指南编写 android 游戏。在书中,它们没有封装类的任何属性。
例如
public class GameObject{
public Vector position;
public float angle;
public GameObject(float angle, Vector position){
...
总是有人告诉我,封装属性是一种很好的做法:只允许通过 getter 和 setter 方法访问私有属性。
有比我更有经验的程序员能告诉我哪种方式是创建属性的“正确”编码方式吗?当然,为什么?
然后跟进:我是不是应该总是封装一个类的私有属性并提供getter和setter方法,还是有公共属性可以的情况?
【问题讨论】:
-
我应该将私有属性与 getter 和 setter 方法或公共属性一起使用 是的,我会说你应该始终使用 getter 和 setter 方法并避免使用公共字段。
-
如果您想知道为什么您的书会这样做(或者为什么有人会这样做),Google 建议(针对 Android 早期版本的游戏)取消 getter/setter 范例因为方法开销。现在 Android 如此先进,不鼓励这种做法。请参阅 youtube.com/watch?v=U4Bk5rmIpic,时间为 0:37:10,其中 Chris Pruett 建议使用公共字段。
标签: java android class methods attributes