有一个项目,其中他说要把一个类做成完全封装,也就是要完全封装这个类,是什么意思?怎么完全封装一个类?不会是把所有的属性和方法都定义成private吧?为什么要完全封装一个类?好处是什么呢?
解决方案 »
- throws 和 throw 之间的区别
- SimpleDaemons@8813f2后面的“8813f2”是什么意思?
- servlet文件中含有自定义包应该怎样编译?
- >>>>>>>>关于抽象类<<<<<<<<<<<<<
- Java程序是不是不能运行在DOS下?属于32位的吗?
- 问几个关于eclipse的几个问题,谢谢指点!
- 你们现在公司用JBuilder的那个版本?究竟那个版本一些?
- Swing对话框的问题,求教各位!
- 如何建立三个下拉列表之间的连动关系?在线等侯!!!
- SQL Server库表的test字段插入(修改)长文本数据。请指点
- windows下JDK的配置有多少版本?
- jedit入门问题请教
每个类都要尽可能做到封装.
我觉得完全封装可以做成个private的内部类.
private int x;
private int b;
public void setX(int x) {
this.x = x;
} public int getX(){
return x;
}
public void setB(int b){
this.b = b;
}
public int getB(){
return b;
}
public void 方法名1(参数1,参数2,....){......}
public void 方法名2(参数1,参数2,....){......}
}变量设置成私有的,只能通过方法来访问~~
完全封装,不让其他的类继承或扩展,使用final或sealed关键字
提供访问各个属性的set\get方法至于这样做的好处:
只允许其他类在set\get方法中按照指定的规则来改变属性的值。
来设置或得到业务需求范围内的值,而不是直接修改或引用属性的值。例如:
package csdnTest;public class Test { public static void main(String[] args) { Test2 t2 = new Test2();
System.out.println(t2.getDate());
}}class Test2 { // 年
private String year = "2009"; // 月
private String month = "04"; // 日
private String day = "28"; // 获取年月日
public String getDate() { return this.year + "年" + month + "月" + day + "日";
}
}