封装是众所周知的 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>
以上是面向对象的编程 ||详情请关注图灵教育的其他相关文章!