Java的封装

Java的封装

  • 该露的露,该藏的藏
    • 我们程序设计要追求“高内聚,低耦合”,高内聚就是类的内部数据细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用
  • 封装(数据的隐藏)
    • 通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。
  • 属性私有,get/set
  1. 提高程序安全性,保护数据
  2. 隐藏代码的实现细节
  3. 统一接口
  4. 系统可维护增加了
  • private关键字

    是一个权限修饰符 ,可以用来修饰成员变量和成员方法.被私有化的成员只能在本类中访问。

package com.cnblogs;
//本类用于实现
public class Application {
    public static void main(String[] args) {
        //实例化
        Person student = new Person();
        student.setAge(520);//输入年龄不合法
        student.setAge(21);
        System.out.println(student.getAge());//21

        student.show();//普通方法!!!

    }
}

package com.cnblogs;
/*
person类
 */
public class Person {
    public static void main(String[] args) {
        //封装方法的调用
        Person student = new Person();
        student.eat();//干饭了!!!
    }
    //姓名
    private String name;
    //学号
    private int id;
    //性别
    private char sex;
    //年龄
    private int age;

    //提供一些public的get、set方法
    //get   获得这个数据
    //set   给这个数据设值
    //idea Alt + insert 快捷键 加Getter and Setter 自动创建get set 方法


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public char getSex() {
        return sex;
    }

    public void setSex(char sex) {
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

    //封装的优势:根据需要或者常识,规范一些值得设定
    public void setAge(int age) {
        if(age > 120 || age < 0){
            System.out.println("输入年龄不合法");
        }else{
            this.age = age;
        }
    }

    public void show(){
        System.out.println("普通方法!!!");
    }
    //封装方法只能在本类中调用
    private void eat(){
        System.out.println("干饭了!!!");
    }
}

posted @ 2021-07-06 10:17  贪玩的阿柒  阅读(120)  评论(0编辑  收藏  举报