【发布时间】:2011-09-27 12:49:27
【问题描述】:
public class Normal {
public string name; // name is public
public String getName() {
return name ;
}
public String setName(String newName) {
name = newName ;
return name ;
}
public static void main(String args[]) {
Normal normal = new Normal();
normal.setName("suhail gupta");
System.out.println( "My name is : " + normal.getName() );
}
}
新课从这里开始
public class Different {
private string name; // name is private
public String getName() {
return name ;
}
public String setName(String newName) {
name = newName ;
return name ;
}
public static void main(String args[]) {
Different different = new Different();
different.setName("suhail gupta");
System.out.println( "My name is : " + different.getName() );
}
}
第一个类有 name 声明为 public 和其他类有 name 声明 private 。这两个类都做同样的工作,但只有 name different 的访问说明符。现在,
我的问题是?
- 这两个类都支持封装吗?如果他们这样做,为什么
private比public更受欢迎? (我在声明 name 时所做的工作与声明private所做的工作相同) - 哪个类更容易维护?
- 在
refactoring期间,哪些类程序员会放心? -
normal类与different类有何不同? - 当他们说Unencapsulated means Unchangeable时,这里怎么一成不变?
【问题讨论】:
-
@Maxpm no ,我一直在努力寻找令我满意的答案。请参阅代码中的链接
-
@富兰克林这是一个 oop 问题,java 的几行并没有使它成为一个 java 问题
-
那我就用 lolcode 来回答吧……那几行就不是 lolcode 的答案了……
-
@Franklin ok..试着回答一下
标签: java oop encapsulation