Me doy cuenta de que esto probablemente no puede ser respondido, pero estoy buscando si hay algún tipo de orientación sobre si usar miembros privados directamente o acceso público dentro de los métodos de clase.Métodos que utilizan miembros privados o accesadores públicos
Por ejemplo, considere el siguiente código (en Java, pero que se vería muy similar en 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());
}
La función printDimensions()
ilustra dos formas de obtener la misma información, [A] con miembros privados (this.numRows, this.numCols
) o [B] a través de los usuarios (this.rows(), this.cols()
).
Por un lado, es posible que prefiera usar los accesadores ya que no hay manera de que pueda cambiar inadvertidamente el valor de las variables de miembro privado. Por otro lado, es posible que prefiera acceder directamente a los miembros privados con la esperanza de que elimine la llamada de función innecesaria.
Supongo que mi pregunta es, ¿es el estándar de facto o preferido?
El código es Java, no C++, etiqueta de eliminación. En cualquier caso, la pregunta es probablemente más * independiente del lenguaje * que Java o C++ ... –
Éste se vuelve religioso. No creo que haya un estándar. Sin embargo, dejaría 'this' cuando sea posible. –
Acepto que parece ser independiente del lenguaje, por lo que incluí C++ originalmente, para no limitar el alcance de la pregunta a Java. – jedwards