是否始终适合在Java类中实现Getter和Setter方法[关闭]

问题描述 投票:0回答:2

在创建Java类时,是否应该始终实现getter和setter方法?我理解在某些情况下,其他类能够通过setter方法更改类变量是不可取的,但只要我们在这些方法中实现输入验证,是否总是适合包含它们?

如果包含getter和setter方法并不总是合适的,请提供我们应该具体实现和不实现它们的指南。

java getter-setter setter getter
2个回答
3
投票

简而言之,没有严格的规则。

如果您认为其他类需要访问它,则为字段包含getter。对于一个完全属于你班级工作内部的领域而言,没有吸气剂是完全合适的,并且不打算暴露。让你的getter返回不是字段本身,而是返回它的一些修改形式,或者它的不可变副本(例如,内部List字段的副本)也是完全合适的。

如果您认为其他类需要可以自由访问变异字段,则包含一个setter。省略setter实际上使该字段为只读。您也可以选择包含一个自定义方法来改变您的字段,而不是传统的setter(例如,add()方法将值添加到内部ListSet,只是举个例子)。根据具体情况,所有方法都是完全合适的。

编辑:根据既定术语将“属性”更改为“字段”


1
投票

国际海事组织

如果你的类是不可变的,你不需要setter;我甚至认为吸气剂是可选的,只要你让田地最终。

如果你的类是可变的,你可能需要getter和setter,特别是对于可以变异的字段。

这里的答案很可能是基于意见/经验,就像我的一样。

© www.soinside.com 2019 - 2024. All rights reserved.