有一个项目,其中他说要把一个类做成完全封装,也就是要完全封装这个类,是什么意思?怎么完全封装一个类?不会是把所有的属性和方法都定义成private吧?为什么要完全封装一个类?好处是什么呢?

解决方案 »

  1.   

    面向对象的三个特性:继承,封装,对态.
    每个类都要尽可能做到封装.
    我觉得完全封装可以做成个private的内部类.
      

  2.   

        把属性尽量都设置成private的,给private 属性都设置get/set方法(就是要通过方法来访问属性,而不是直接操作它)
      

  3.   

    public class Test {
    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,....){......}
    }变量设置成私有的,只能通过方法来访问~~
      

  4.   

    个人认为:
    完全封装,不让其他的类继承或扩展,使用final或sealed关键字
      

  5.   

    方法是暴露给外部其他类的,一般不会用private吧,属性一般会是private,不允许外部其他类直接修改,必须调用类暴露出来的方法来修改
      

  6.   

    所有的属性都写成private
    提供访问各个属性的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 + "日";
        }
    }
      

  7.   

    不局限于private类型,也不是不让其他类扩展,只要防止其他类对自己属性和方法的修改就可了,完全封装这个概念...