进攻型二传手、防守型二传手

sle*_*ead 0 java getter-setter

我目前正在学习java,发现一些我在作业说明中找不到答案的东西。

该指令描述了 getter 和 setter 方法如下:

  • getPic:返回图片(进攻性吸气剂)
  • setPic:创建给定图片的副本(防守二传手)

我找不到进攻型进攻手防守型二传手的含义的答案。

有人可以向我解释一下吗?

非常感谢!

abl*_*abl 5

我以前从未见过这个术语,我认为它用得不多。但根据你的问题,我认为这可能意味着以下内容:

防御性 getter:返回内部对象的副本,而不是对象本身,以便外部代码可以更改返回的对象而不影响类的内部状态:

Foo getFoo() {
    return this.foo.clone();
}
Run Code Online (Sandbox Code Playgroud)

进攻型吸气剂:非防守型吸气剂

Foo getFoo() {
    return this.foo;
}
Run Code Online (Sandbox Code Playgroud)

防守二传:同样的故事。创建对象的副本,以便对原始对象的外部更改不会影响内部状态。

void setFoo(Foo foo) {
    this.foo = foo.clone();
}
Run Code Online (Sandbox Code Playgroud)

进攻二传:不防守

void setFoo(Foo foo) {
    this.foo = foo;
}
Run Code Online (Sandbox Code Playgroud)

  • 如果值是不可变的,那么这种区别是无效的/没有意义的。 (2认同)