当前位置: 首页 > 图灵资讯 > 技术篇> 面向对象编程 ||封装

面向对象编程 ||封装

来源:图灵教育
时间:2024-07-10 22:04:17

面向对象编程 ||封装

封装是众所周知的 OOPS 的 4 在大支柱之一,我们可以使用它来隐藏数据,并添加一些限制来执行我们想要确保包装类别的实例变量。做得很完美。 一般来说,我们被告知必须隐藏变量,这样没有人能改变它,除了定义变量类别。因此,我们定义这个变量(如有必要),以访问类外部。 getter 和 setter 方法使我们能够执行这个例子 vairbale 必要的相关操作。参考以下Java示例代码::

// 银行账户持有人的类别
公共类 BankAccountHolder {

    // 存储账户信息的私有字段
    私有字符串账号;
    账户持有人的私有字符串名称;
    私人双重余额;

    // 用于初始化新 BankAccount 公共结构函数
    公共bankacount(字符串accountnumber,字符串accountholdername,双initialBalance抛出异常{
        setAccountNumber(帐号);
        setAccountHolderName(accountHolderName);
        设置余额(初始余额);
    }

    // accountNumber 的公共 getter
    公共字符串 getAccountNumber() {
        返回帐号;
    }

    // accountNumber 私有设置器
    private void setAccountNumber(String accountNumber) 抛出异常 {
        if (accountNumber != null && != null && !accountNumber.isEmpty()) {
            this. 帐号 = 帐号;
        } 别的 {
            throw new Exception("账号无效。");
        }
    }

    // accountHolderName 的公共 getter
    公共字符串 getAccountHolderName() {
        返回账户持有人姓名;
    }

    // accountHolderName 公共设置器
    公共无效setaccountholdername(字符串accountholdername)抛出异常{
        if (accountHolderName != null && !accountHolderName.isEmpty()) {
            this.accountHolderName = accountHolderName;
        } 别的 {
            throw new Exception("账户持有人姓名无效。");
        }
    }

    // 用于公共平衡 getter
    公共双 getBalance() {
        返回余额;
    }

    // 私人设置器用于平衡
    私人无效setbalance(双平衡)抛出异常{
        如果(余额 >= 0){
            this.balance = 余额;
        } 别的 {
            throw new Exception("初始余额无效。");
        }
    }
}

我们有上面的例子 3 个变量accountNumber、accountHolderName、balance 作为一种私有方法,我们为此做出了贡献 3 每个变量中的每个定义 getter 和 setter,这样,如果他们想使用其他类别的实例变量,他们就可以很容易地使用实例变量. 但这还不是全部,假设我们还需要另一个 2 这样我们就可以从这个账户存款和取款了。 请注意,我们不讨论应用程序级别的安全性,假设我们的团队已经完成了授权用户的完美工作。 因此,在实施提取和存储金额的工作时,我们将尽量避免直接调用实例变量balance”。为此,我们使用它 setter 因为 setter 如果实例变量违反任何规则,方法保证会引起异常。 以下是存款和取款方式的代码,我们将在 BankAccountHolder 类中添加。

 公共无效存款(双倍金额)抛出异常 {
        如果(金额 > 0) 
            int FinalBalance = this.getBalance() + 金额;
            设置余额(最终余额);
        } 别的 {
            throw new Exception("存款金额必须为正数。");
        }
    }

    // 从账户中提取金额的公共方法
    公共无效提款(双倍金额)抛出异常{
        if (金额 > 0 && 金额 



<p><strong>总结:我们会尽量避免在类中直接调用实例变量,满足代码内部的安全标准。</strong></p>


          

            

            
        

以上是面向对象的编程 ||详情请关注图灵教育的其他相关文章!