Chr*_*ava 1 java methods android attributes class
我已经编写Java大约4个月了.我刚开始用介绍书的指南编写安卓游戏.在本书中,它们没有封装类的任何属性.
防爆.
public class GameObject{
public Vector position;
public float angle;
public GameObject(float angle, Vector position){
...
Run Code Online (Sandbox Code Playgroud)
我总是被告知,对属性的封装是很好的做法:只允许通过getter和setter方法访问私有属性.
任何比我更有经验的程序员能告诉我哪种方式是创建属性的"正确"编码方式?当然为什么请?
然后是一个跟进:我应该总是封装一个类的私有属性并提供getter和setter方法,还是有公共属性可以的情况?
npi*_*nti 10
封装是面向对象编程的核心概念之一.在我看来,使用getter和setter总是很好的做法.你应该避免的一件事是让外部实体随意混淆你班级的内部结构.
典型的例子,考虑有一个dateOfBirth
参数.使用a setter
,getter
你可以进行一个小的验证过程,确保用户不是在将来出生,或者是不可能的老.您还可以使用setter更新其他一些字段,例如age.
这个次要验证还可以增强代码的可重用性,因为您不需要在调用这些getter和setter的任何其他类中进行此检查.