java基础-隐藏和封装

我们知道类内部定义的属性(对象的成员变量)直接操作会导致数据的错误,混乱,安全性问题等

那么如果你还不太明白上面的话,让我们来看下面代码演示

package yichang;

public class demo {
    public int age;
    public void printAge(){
        System.out.println(age);
    }
}
package yichang;

public class test1 {
    public static void main(String[] args) {
        demo p =new demo();
        p.age=2;
        p.printAge();
    }
}

 那么程序是没有什么问题的对吧。但是

这样的情况类的属性age被开放出来了,可以在外面的类,调用者等随意使用,这样就会有问题,比如age=-3034等负数都有可能

所以需要改进,不能让调用者随意使用

package yichang;

public class demo {
    private int age;
    public void printAge(){
        System.out.println(age);
    }
    //设置一个方法
    public void setAge(int a){
        if(a<=150&&a>=0)
        {
            age =a;
        }
        else {
            System.out.println("输入的年龄不符");
        }

    }
}
package yichang;

public class test1 {
    public static void main(String[] args) {
        demo p =new demo();
        p.setAge(2);
        p.printAge();
    }
}

 那么这就是封装和隐藏

将变量设置为私有private

然后通过set get等设置对属性操作

也增加了代码的可维护性。

原文地址:https://www.cnblogs.com/yangj-Blog/p/12963786.html