codecamp

IntelliJ IDEA封装字段重构

封装字段

您可以隐藏您的数据并通过基于访问器方法的外部接口访问它。然后,您可以更改数据内部,保持与依赖于该类的代码及其可用方法的完全兼容性。该封装字段重构允许您隐藏数据并创建必要的访问器。

此重构也可从  UML 类图中获得。

重构前 重构后
// Class.java 文件
public class Class {
    public String aString;
}
// Class.java 文件
public class Class {
    private String aString;
    public void setaString(String aString) {
        this.aString = aString;
    }
    public String getaString() {
        return aString;
    }
}
// AnotherClass.java 文件
public class AnotherClass {
    public Class aClass;
    public void method() {
        aClass.aString="string";
    }
}
// AnotherClass.java 文件
public class AnotherClass {
    public Class aClass;
    public void method() {
        aClass.setaString("string");
    }
}

要执行封装字段重构,请按照下列步骤操作:

  1. 选择类中的类或特定字段。您执行选择的方式取决于您执行时选择的视图。
    • 在编辑器中:将插入符号放置在需要重新构建的类的所需字段或任何位置。
    • 在 "项目" 视图中:选择所需的类。
    • 在“结构”视图中:选择一个或多个字段。
  2. 在主菜单或选择的上下文菜单上,选择:重构|封装字段(Refactor | Encapsulate Fields)。将打开 "封装字段" 对话框,显示在选定范围内检测到的所有字段。
  3. 在 "要封装的字段" 区域中检查您要创建访问器的字段。
  4. 在 "封装" 区域中,指定是否要创建 getter 或 setter 方法,或两者兼而有之​​。
  5. 要使用适当的访问器方法的调用来替换所有的字段实例,请在 "选项" 区域中检查选项使用访问器,即使字段是可访问的。
  6. 在封装字段的可见性区域中指定所选字段的新的可见性范围。
  7. 在访问者的可见性区域中为创建的访问器方法选择可见性范围。
  8. 预览并应用更改。
IntelliJ IDEA转换为实例方法
IntelliJ IDEA泛型重构
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

IntelliJ IDEA的一般准则

什么是IntelliJ IDEA项目

使用IntelliJ IDEA的意图行为

IntelliJ IDEA使用运行/调试配置

特定于VCS的程序

IntelliJ IDEA语言和特定框架指南

IntelliJ IDEA的数据库和SQL功能

IntelliJ IDEA使用之JavaServer Faces(JSF)

IntelliJ IDEA:分析PHP应用程序的性能

IntelliJ IDEA:调试PHP应用程序

IntelliJ IDEA:适用于PHP的Google App Engine

IntelliJ IDEA更多内容

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }