Joh*_*ohn 8 java access-modifiers anonymous-class
我创建了一个匿名类,其中我声明了一些变量和方法.我的java老师告诉我要把这些私有化.我没有看到改变修饰符有什么不同,因为无论如何这些变量和方法对于匿名类是私有的,所以我更喜欢根本没有修饰符.谁是对的,什么更有意义?请参阅下面的示例代码,其中我选择"map"和"convert"的修饰符而不是将其设为私有.
Collections.sort(list, new Comparator<String>(){
public int compare(String a, String b){
return convert(a).compareTo(convert(b));
}
Map<String, String> map = new HashMap<String, String>();
String convert(String s) {
String u = map.get(s);
if (u == null)
map.put(s, u = s.toUpperCase());
return u;
}
});
Run Code Online (Sandbox Code Playgroud)
我很想把它们私有化,因为如果你重构代码并将匿名类作为标准类拉出来(例如,Intellij可以通过点击按钮来实现),拥有私有字段就是你真的想要.您不必去修改您的课程以符合您的标准.
你的教授是对的。将所有类变量设为私有并通过属性公开它们(如果不是匿名的)。
一般经验法则是将成员数据(例如变量,包括 Map 对象)保持私有。
| 归档时间: |
|
| 查看次数: |
1605 次 |
| 最近记录: |