Java面向对象三大特性之封装

入口

 

  1. java面向对象三大特性:

    封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。

    继承:继承是类与类的一种关系,是一种“is  a”的关系。比如“狗”继承“动物”,这里动物类是狗类的父类或者基类,狗类是动物类的子类或者派生类。

    多态:同一个引用类型,使用不同的实例,执行不同的操作。方法重写是实现多态的基础。

  2. java面向对象三大特性之封装(数据的隐藏):

    通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏

    1、提高程序的安全性,保护数据

    2、隐藏代码的实现细节

    3、统一接口

    4、提高系统的可维护性

  3. 注意:

    程序追求:高内聚,低耦合

    高内聚:类的内部数据操作细节自己完成,不允许外部干涉

    低耦合:仅暴露少量的方法给外部使用

    良好的封装便于修改内部代码

    提高系统的可维护性

     

  4. 实例:
     1 package oop.demo5;
     2 
     3 /**
     4  * java面向对象三大特性:封装、继承、多态
     5  * java面向对象三大特性之封装(数据的隐藏):
     6  * 通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏
     7  *  1.提高程序的安全性,保护数据
     8  *  2.隐藏代码的实现细节
     9  *  3.统一接口
    10  *  4.提高系统的可维护性
    11  *
    12  *  程序追求:高内聚,低耦合
    13  *  高内聚:类的内部数据操作细节自己完成,不允许外部干涉
    14  *  低耦合:仅暴露少量的方法给外部使用
    15  *  良好的封装便于修改内部代码
    16  *  提高系统的可维护性
    17  */
    18 public class Application {
    19 
    20     public static void main(String[] args) {
    21 
    22         Student s1 = new Student();
    23 
    24         s1.setName("秦疆");
    25         System.out.println(s1.getName());
    26 
    27         s1.setAge(999); //不合法数据 setAge方法校验
    28         System.out.println(s1.getAge());
    29     }
    30 }
     

属性私有    get    set

 

  1. 初识:

    private    属性私有

    快捷键:Alt + Insert 自动生成 get    set 方法

  2. 示例:

     

  3. 实例:
     1 package oop.demo5;
     2 
     3 /**
     4  * private
     5  * 属性私有
     6  * 快捷键:Alt + Insert   自动生成 get  set 方法
     7  */
     8 public class Student {
     9 
    10     private int id; //学号
    11     private String name; //名字
    12     private char sex; //性别
    13     private int age; //年龄
    14 
    15     /**
    16      * 提供可以操作这些属性的方法
    17      * 提供一些 public 的 get、set 方法
    18      * get:取值
    19      * set:赋值
    20      */
    21     public String getName(){
    22         return this.name;
    23     }
    24 
    25     public void setName(String name){
    26         this.name = name;
    27     }
    28 
    29     public int getId() {
    30         return id;
    31     }
    32 
    33     public void setId(int id) {
    34         this.id = id;
    35     }
    36 
    37     public char getSex() {
    38         return sex;
    39     }
    40 
    41     public void setSex(char sex) {
    42         this.sex = sex;
    43     }
    44 
    45     public int getAge() {
    46         return age;
    47     }
    48 
    49     public void setAge(int age) {
    50         if (age > 120 || age < 0){ //年龄不合法则为3岁小朋友
    51             this.age = 3;
    52         }else {
    53             this.age = age;
    54         }
    55     }
    56 }
     
posted @ 2020-10-12 15:14  无明之辈  阅读(175)  评论(0编辑  收藏  举报