zvvq技术分享网

面向对象编程 ||封装(面向对象方法中最基本的

作者:zvvq博客网
导读众所周知,封装是 OOPS 的 4 大支柱之一,我们可以使用它来隐藏数据,并添加一些限制来对我们想要确保封装的类的实例变量执行操作。做得很完美。 一般来说,我们被告知必须隐藏变

内容来自samhan

众所周知,封装是 OOPS 的 4 大支柱之一,我们可以使用它来隐藏数据,并添加一些限制来对我们想要确保封装的类的实例变量执行操作。做得很完美。 内容来自zvvq,别采集哟

一般来说,我们被告知必须隐藏变量,以便除了定义该变量的类之外没有人可以更改它。因此,为了在类外部访问此变量(如果需要),我们定义 getter 和 setter 方法,以便我们可以执行与该实例 vairbale 相关的必要操作。 本文来自zvvq

参考下面的Java示例代码::

zvvq.cn

1

内容来自zvvq

2 zvvq.cn

3 内容来自samhan666

4 内容来自samhan

5

内容来自samhan666

6

内容来自samhan

7 zvvq好,好zvvq

8 内容来自samhan666

9

内容来自samhan

10

zvvq好,好zvvq

11 zvvq好,好zvvq

12 zvvq.cn

13 本文来自zvvq

14 内容来自samhan

15

copyright zvvq

16 本文来自zvvq

17 内容来自samhan666

18 zvvq

19 内容来自zvvq,别采集哟

20 内容来自zvvq

21

本文来自zvvq

22

zvvq

23 zvvq好,好zvvq

24

zvvq

25

zvvq.cn

26 zvvq好,好zvvq

27 内容来自samhan666

28 内容来自samhan

29

内容来自samhan

30

zvvq好,好zvvq

31 zvvq

32

内容来自zvvq,别采集哟

33

zvvq.cn

34

copyright zvvq

35

内容来自zvvq,别采集哟

36

内容来自zvvq

37 zvvq

38

copyright zvvq

39 内容来自samhan

40

内容来自zvvq

41

内容来自zvvq,别采集哟

42

zvvq.cn

43 zvvq.cn

44 copyright zvvq

45 内容来自zvvq

46

内容来自zvvq

47

copyright zvvq

48 zvvq.cn

49

内容来自samhan666

50 内容来自zvvq

51 zvvq

52

内容来自zvvq

53

内容来自zvvq,别采集哟

54

zvvq

55 内容来自zvvq

56

zvvq.cn

57 zvvq.cn

// 银行账户持有人的类 内容来自zvvq,别采集哟

公共类 BankAccountHolder {

内容来自zvvq

// 存储账户信息的私有字段

内容来自zvvq

私有字符串帐号; zvvq

私有字符串帐户持有者名称; 内容来自samhan666

私人双重余额; zvvq

// 用于初始化新 BankAccount 的公共构造函数

zvvq.cn

公共BankAccount(字符串accountNumber,字符串accountHolderName,双initialBalance)抛出异常{ 内容来自samhan666

setAccountNumber(帐号);

内容来自zvvq,别采集哟

setAccountHolderName(accountHolderName);

内容来自zvvq,别采集哟

设置余额(初始余额);

本文来自zvvq

} zvvq.cn

// accountNumber 的公共 getter copyright zvvq

公共字符串 getAccountNumber() { zvvq好,好zvvq

返回帐号;

内容来自samhan666

}

内容来自samhan

// accountNumber 的私有设置器 内容来自samhan666

private void setAccountNumber(String accountNumber) 抛出异常 {

内容来自zvvq

if (accountNumber != null && !accountNumber.isEmpty()) { 本文来自zvvq

this. 帐号 = 帐号;

本文来自zvvq

} 别的 { zvvq.cn

throw new Exception("账号无效。");

内容来自samhan666

} 内容来自zvvq,别采集哟

}

本文来自zvvq

// accountHolderName 的公共 getter

zvvq好,好zvvq

公共字符串 getAccountHolderName() { copyright zvvq

返回账户持有者姓名;

本文来自zvvq

} 本文来自zvvq

// accountHolderName 的公共设置器 zvvq.cn

公共无效setAccountHolderName(字符串accountHolderName)抛出异常{

copyright zvvq

if (accountHolderName != null && !accountHolderName.isEmpty()) { zvvq

this.accountHolderName = accountHolderName;

内容来自zvvq

} 别的 { 内容来自samhan666

throw new Exception("账户持有人姓名无效。"); zvvq好,好zvvq

} zvvq好,好zvvq

}

本文来自zvvq

// 用于平衡的公共 getter

zvvq

公共双 getBalance() {

zvvq好,好zvvq

返回余额;

zvvq好,好zvvq

}

zvvq好,好zvvq

// 用于平衡的私有设置器 copyright zvvq

私人无效setBalance(双平衡)抛出异常{

本文来自zvvq

如果(余额 >= 0){

zvvq好,好zvvq

this.balance = 余额;

内容来自zvvq

} 别的 { 内容来自samhan

throw new Exception("初始余额无效。"); zvvq好,好zvvq

} 本文来自zvvq

} zvvq好,好zvvq

} zvvq

在上面的示例中,我们有 3 个变量accountNumber、accountHolderName、balance 作为私有方法,并且我们为这 3 个变量中的每一个定义了 getter 和 setter,以便如果使用其他类想要使用实例变量,他们可以轻松地使用实例变量使用. 内容来自samhan

但这还不是全部,假设我们还需要另外 2 种方法,以便我们可以从该帐户存款和取款。

内容来自zvvq,别采集哟

请注意,这里我们不讨论应用程序级别的安全性,我们假设我们的团队已经完成了完美的工作来授权用户。 内容来自samhan

因此,使用新的两种方法,在执行提取和存入金额的工作时,我们将尽量避免直接调用实例变量“balance”。为此,我们使用 setter 方法更新它,因为 setter 方法确保如果实例变量违反任何规则,它将引发异常。 本文来自zvvq

以下是存款和取款方法代码,我们将在 BankAccountHolder 类中添加。

内容来自samhan666

1 内容来自samhan

2 内容来自zvvq,别采集哟

3 zvvq好,好zvvq

4

zvvq

5

copyright zvvq

6 copyright zvvq

7 zvvq.cn

8 本文来自zvvq

9 内容来自zvvq

10 copyright zvvq

11

内容来自zvvq,别采集哟

12 内容来自samhan

13

内容来自samhan

14 copyright zvvq

15

本文来自zvvq

16 zvvq.cn

17

内容来自zvvq

18

内容来自samhan

19 内容来自zvvq

20 zvvq.cn

21 zvvq好,好zvvq

22 内容来自samhan666

23 内容来自samhan666

公共无效存款(双倍金额)抛出异常 {

copyright zvvq

如果(金额 > 0) 内容来自zvvq,别采集哟

int FinalBalance = this.getBalance() + 金额; zvvq.cn

设置余额(最终余额);

内容来自samhan

} 别的 {

zvvq好,好zvvq

throw new Exception("存款金额必须为正数。"); zvvq.cn

}

本文来自zvvq

}

内容来自samhan

// 从账户中提取金额的公共方法 内容来自zvvq

公共无效提款(双倍金额)抛出异常{

zvvq

if (金额 > 0 && 金额

zvvq

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

以上就是面向对象编程 ||封装的详细内容,更多请关注其它相关文章!

zvvq