【发布时间】:2012-06-05 17:18:09
【问题描述】:
我意识到这可能无法回答,但我正在寻找关于是直接使用私有成员还是在类方法中使用公共访问器的某种指导。
例如,考虑以下代码(在 Java 中,但在 C++ 中看起来非常相似):
public class Matrix {
// Private Members
private int[][] e;
private int numRows;
private int numCols;
// Accessors
public int rows(){ return this.numRows; }
public int cols(){ return this.numCols; }
// Class Methods
// ...
public void printDimensions()
{
// [A] Using private members
System.out.format("Matrix[%d*%d]\n", this.numRows, this.numCols);
// [B] Using accessors
System.out.format("Matrix[%d*%d]\n", this.rows(), this.cols());
}
printDimensions() 函数说明了获取相同信息的两种方法,[A] 使用私有成员 (this.numRows, this.numCols) 或 [B] 通过访问器 (this.rows(), this.cols())。
一方面,您可能更喜欢使用访问器,因为您不可能无意中更改私有成员变量的值。另一方面,您可能更喜欢直接访问私有成员,希望它会删除不必要的函数调用。
我想我的问题是,是事实上的标准还是首选?
【问题讨论】:
-
代码是 Java,而不是 C++,删除标签。无论如何,这个问题可能比 Java 或 C++ 更语言不可知...
-
这个变得虔诚。我认为没有标准。不过,我会尽可能关闭
this.。 -
我同意它似乎与语言无关,这就是我最初包含 C++ 的原因,以免将问题的范围限制在 Java 上。
-
Java getter vs this的可能重复
标签: java coding-style