这个问题不是针对Java的,但是示例代码是Java代码。
有时候你会遇到非常简单的对象,比如以下代码:
public class Coordinates {
private int x;
private int y;
public Coordinates (int x, int y) {
this.x = x;
this.y = y;
}
public void setX (int x) { this.x = x; }
public void setY (int y) { this.y = y; }
public int getX () { return x; }
public int getY () { return y; }
}
我认为直接访问字段比通过方法更加高效。而且,代码看起来会更简单。使用也会更简单,类定义不会包含4个没有实际作用的方法(即不必要的样板代码)。某种程度上,我想到了C语言中的struct或Pascal中的record的用法。
我的做法可能是这样的:
public class Coordinates {
public int x;
public int y;
public Coordinates (int x, int y) {
this.x = x;
this.y = y;
}
}
那么为什么第一种方式似乎更受欢迎呢?感觉是在强制将某些内容变成一个对象。它只是将值捆绑到一个变量中,为什么要仅仅为了使用OOP而使用呢?当然,我保留了构造函数。当值最初被赋值时,它非常方便,但实际上除了可能会设置两个字段的方法(如构造函数)之外,没有其他必要的方法。
我知道OOP对许多事情很方便,但对我来说,这似乎不是其中之一。我这样想错了吗?
Point
,它有x
和y
字段。根据定义,点可以有任何x
和y
坐标,因此未来非常不可能需要添加验证。 - dcastro