微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

例如,考虑以下代码(在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函数调用开销足够小,在大多数情况下无关紧要,这种用法保留了数据抽象.如果我后来想要改变数据的存储方式,我只需要更改访问器,而不是寻找触及变量的所有地方.

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐