在java中设置和获取方法?
2022-08-31 21:27:28
如何使用集合和获取方法,为什么要使用它们?他们真的有帮助吗?另外,你能给我一些集合和获取方法的例子吗?
如何使用集合和获取方法,为什么要使用它们?他们真的有帮助吗?另外,你能给我一些集合和获取方法的例子吗?
Set 和 Get 方法是数据封装的一种模式。您不是直接访问类成员变量,而是定义访问这些变量的方法以及修改它们的方法。通过以这种方式封装它们,您可以控制公共接口,以防将来需要更改类的内部工作原理。get
set
例如,对于成员变量:
Integer x;
您可能有以下方法:
Integer getX(){ return x; }
void setX(Integer x){ this.x = x; }
chiccodoro还提到了一个重要的观点。如果只想允许任何外来类对字段进行读取访问,则可以通过仅提供公共方法并保持私有或根本不提供 方法来执行此操作。get
set
set
我想在其他答案中添加一些答案,即可以使用 setter 来防止将对象置于无效状态。
例如,假设我必须设置一个TaxId,建模为字符串。setter 的第一个版本可以如下所示:
private String taxId;
public void setTaxId(String taxId) {
this.taxId = taxId;
}
但是,我们最好防止使用无效的 taxId 设置对象,因此我们可以引入检查:
private String taxId;
public void setTaxId(String taxId) throws IllegalArgumentException {
if (isTaxIdValid(taxId)) {
throw new IllegalArgumentException("Tax Id '" + taxId + "' is invalid");
}
this.taxId = taxId;
}
下一步,为了提高程序的模块化,是使TaxId本身作为一个对象,能够检查自己。
private final TaxId taxId = new TaxId()
public void setTaxId(String taxIdString) throws IllegalArgumentException {
taxId.set(taxIdString); //will throw exception if not valid
}
同样,对于获取者来说,如果我们还没有值怎么办?也许我们想要一条不同的道路,我们可以说:
public String getTaxId() throws IllegalStateException {
return taxId.get(); //will throw exception if not set
}