加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 使用私有成员或公共访问器的方法

发布时间:2020-12-14 05:44:57 所属栏目:Java 来源:网络整理
导读:我意识到这可能无法回答,但我正在寻找是否有关于是否直接使用私有成员或类方法中的公共访问器的某种指导. 例如,考虑以下代码(在Java中,但在C中看起来非常相似): public class Matrix { // Private Members private int[][] e; private int numRows; private
我意识到这可能无法回答,但我正在寻找是否有关于是否直接使用私有成员或类方法中的公共访问器的某种指导.

例如,考虑以下代码(在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()).

一方面,您可能更喜欢使用访问器,因为您无法无意中更改私有成员变量的值.另一方面,您可能更喜欢直接访问私有成员,希望它可以删除不必要的函数调用.

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

解决方法

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读