欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

封装

程序员文章站 2022-05-02 20:30:51
...

封装
封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式。
好处:隐藏实现细节,提供公共的访问方式;提高代码复用性;提高安全性。
原则:将不需要对外提供的内容都隐藏起来。把属性隐藏起来,提供公共方法对其访问。
例,强制要求不能在main方法中直接使用成员变量age:

/*
    定义一个Student类:
                成员变量: name, age
                成员方法:show()
    为了防止给成员变量赋了非法值,在赋值之前需要进行判断
                Q:在哪判断比较合适呢?
                A: StudentDemo1为测试类,一般用于创建对象,调用方法
                        所以应该写在Student类中,怎么破:
                            ————在该类中提供一个方法来对age进行设置: setAge()
    如何强制要求不能在main方法中直接使用成员变量age:
                类定义中,私有成员变量。private int age; 

*/

class Student{
    String name;
    private int age;  //私有private

    public void show(){
        System.out.println(name);
        System.out.println(age);
    }

    /*
        提供一个方法,校验数据,防止成员变量赋值不合法

        返回值类型:void
        参数列表:int num
    */
    public void setAge(int num){
        if(num<0 || num>120){
            System.out.println("数据不合法");
        }
        else
            age=num;   //*****************************合法时,才把该数字给age
    }

}

class StudentDemo1{
    public static void main(String[] args){
        Student s= new Student();
        s.show();

        System.out.println("赋值后:");
        s.name="李健";

        //s.age=-44; 会报错,不能再在main()中直接访问age成员变量了
        //通过方法给值
        s.setAge(-44); 
        s.show();  //show出来的年龄为0哦,因为不合法,所以仍为默认初值

    }
}
相关标签: 封装