gpt4 book ai didi

java - 使用私有(private)成员或公共(public)访问器的方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:10:37 24 4
gpt4 key购买 nike

我意识到这可能无法回答,但我正在寻找关于是直接使用私有(private)成员还是在类方法中使用公共(public)访问器的某种指导。

例如,考虑以下代码(在 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] 使用私有(private)成员(this.numRows, this.numCols)或 [B]通过访问器(this.rows(), this.cols())。

一方面,您可能更喜欢使用访问器,因为您不可能无意中更改私有(private)成员变量的值。另一方面,您可能更喜欢直接访问私有(private)成员,希望这样可以消除不必要的函数调用。

我想我的问题是,事实上的标准还是首选?

最佳答案

这是一种风格呼唤。我更喜欢使用访问器,因为恕我直言,函数调用开销足够小,在大多数情况下无关紧要,而且这种用法保留了数据抽象。如果我以后想改变数据的存储方式,我只需要改变访问器,而不是寻找我接触变量的所有地方。

不过,我对此并不强烈,如果我认为我有充分的理由,我会打破这个“规则”。

关于java - 使用私有(private)成员或公共(public)访问器的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10901829/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com