gpt4 book ai didi

java - 封装与普通

转载 作者:搜寻专家 更新时间:2023-11-01 03:03:03 25 4
gpt4 key购买 nike

如果下面的代码会产生相同的结果,我为什么要使用封装?

The main benefit of encapsulation is the ability to modify our implemented code without breaking the code of others who use our code.

但是我可以在不使用封装的情况下使用这个好处,对吗?因为每个物体的场都与彼此的场不同。

// Person.java
public class Person {
// Plain
public String name;

// Uses encapsulation
private String name2;
public void setName(String name2) {
this.name2 = name2;
}
public String getName() {
return name2;
}
}

// Main.java
public class Main() {
public static void main(String[] args) {
// Plain
Person person = new Person();
person.name = "Jordan";
System.out.println(person.name);

// Uses encapsulation
Person person2=new Person();
person2.setName("Jordan");
System.out.println(person2.getName());
}
}

最佳答案

  1. 通过提供 getter 和 setter,我们可以获得隐藏实现的好处。例如您可以使用惰性初始化、代理等。
  2. 代码变得更易于维护,例如您可以轻松地在一个地方添加前后检查(或验证)。如果您直接访问该变量,之后您需要在读取值时添加任何验证或某些默认行为,您将不得不在多个地方更改它。
  3. 通过 getter 和 setter,您可以获得多态性的好处。例如如果您不想在扩展版本中更改变量的值,反之亦然,您可以简单地抛出异常。

从调试的角度来看:

  1. 提供访问或更新变量值的代码行的隔离。 (可用于检查引用文献)
  2. 有时,我们需要知道变量的值在哪里发生了变化。您可以放置​​调试指针或记录器来调查它。

关于java - 封装与普通,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31529809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com