封装字段
封装字段重构允许您隐藏数据并创建必要的访问器。
隐藏您的数据,并通过基于访问器方法的外部接口访问它,是一个好主意。 以后,您可以更改数据内部结构,与依赖于该类及其可用方法的代码保持完全兼容。
在编辑器中,将文本光标放置在类、所需字段或您想要重构的类的任何位置。 (您也可以使用 项目 工具窗口或 Structure 视图 进行选择。)
从主菜单或上下文菜单中选择 。
在打开的对话框中,勾选您想要创建访问器的字段,指定您是否想要创建 getter 或 setter 方法。 此外,如果您希望将所有字段实例替换为对适当访问器方法的调用,请选择 即使字段可访问也要使用访问器。 您还可以选择可见性选项。
示例
之前 | 之后 |
|---|---|
//File Class.java
public class Class {
public String aString;
}
|
//File Class.java
public class Class {
private String aString;
public void setaString(String aString) {
this.aString = aString;
}
public String getaString() {
return aString;
}
}
|
//File AnotherClass.java
public class AnotherClass {
public Class aClass;
public void method() {
aClass.aString="string";
}
}
|
//File AnotherClass.java
public class AnotherClass {
public Class aClass;
public void method() {
aClass.setaString("string");
}
}
|
封装字段对话框
请使用此对话框指定 封装字段 重构的选项。
条目 | 描述 |
|---|---|
要封装的字段 | 在此区域,选择您想要创建访问器的字段。 您可以保留默认名称或重命名它们。 如果在您重构的类中已经存在具有相同签名的方法,将会出现 方法 图标( 您应检查现有的方法是否可以作为访问器使用。 如果没有这个条件,您可能需要重命名该访问器或更改现有的方法,然后再使用 封装字段 重构。 如果新的访问器重写( |
获取访问权限/设置访问权限 | 请使用此选项组选择要为所选字段创建的存取方法(Getter,Setter 或两者)。 如果取消选中某个复选框,则“字段封装”表中相应列(Getter 或 Setter)将被禁用。 |
封装字段的可见性 | 在此,您可以为选定的字段指定新的可见性范围 |
选项 | 选择是否在字段可访问时仍使用访问器。 如果 即使字段可访问,也要使用访问器 选项未启用,当这些字段可以直接访问时,对所需字段的引用将不会改变。 否则,对目标字段的所有引用将被替换为访问器调用。 这也取决于您在选项组中的选择 封装字段的可见性。 例如,如果您取消选中该选项 即使字段可访问,也要使用访问器 ,并为字段选择 private可见性,则类外字段的使用将会改变,但在类内将保持不变。 |
访问器可见性 | 在此区域选择为创建的 accessor 方法设置可见性范围。 |