zoukankan      html  css  js  c++  java
  • java 面向对象(八):面向对象的特征一:封装性

    面向对象的特征一:封装与隐藏
    1.为什么要引入封装性?
    我们程序设计追求“高内聚,低耦合”。
    高内聚 :类的内部数据操作细节自己完成,不允许外部干涉;
    低耦合 :仅对外暴露少量的方法用于使用。

    隐藏对象内部的复杂性,只对外公开简单的接口。便于外界调用,从而提高系统的可扩展性、可维护性。通俗的说,把该隐藏的隐藏起来,该暴露的暴露出来。这就是封装性的设计思想。

    2.问题引入:
    当我们创建一个类的对象以后,我们可以通过"对象.属性"的方式,对对象的属性进行赋值。这里,赋值操作要受到属性的数据类型和存储范围的制约。除此之外,没其他制约条件。但是,在实际问题中,我们往往需要给属性赋值加入额外的限制条件。这个条件就不能在属性声明时体现,我们只能通过方法进行限制条件的添加。(比如:setLegs()同时,我们需要避免用户再使用"对象.属性"的方式对属性进行赋值。则需要将属性声明为私有的(private).
    -->此时,针对于属性就体现了封装性。
    3.封装性思想具体的代码体现:
    体现一:将类的属性xxx私化(private),同时,提供公共的(public)方法来获取(getXxx)和设置(setXxx)此属性的值

    复制代码

    private double radius;
    public void setRadius(double radius){
    this.radius = radius;
    }
    public double getRadius(){
    return radius;
    }

    复制代码

    体现二:不对外暴露的私有的方法
    体现三:单例模式(将构造器私有化)
    体现四:如果不希望类在包外被调用,可以将类设置为缺省的。

    4.Java规定的四种权限修饰符
    4.1 权限从小到大顺序为:private < 缺省 < protected < public
    4.2 具体的修饰范围:

    4.3 权限修饰符可用来修饰的结构说明:
    4种权限都可以用来修饰类的内部结构:属性、方法、构造器、内部类
    修饰类的话,只能使用:缺省、public

    面向对象的特征一:封装与隐藏
    1.为什么要引入封装性?
    我们程序设计追求“高内聚,低耦合”。
    高内聚 :类的内部数据操作细节自己完成,不允许外部干涉;
    低耦合 :仅对外暴露少量的方法用于使用。

    隐藏对象内部的复杂性,只对外公开简单的接口。便于外界调用,从而提高系统的可扩展性、可维护性。通俗的说,把该隐藏的隐藏起来,该暴露的暴露出来。这就是封装性的设计思想。

    2.问题引入:
    当我们创建一个类的对象以后,我们可以通过"对象.属性"的方式,对对象的属性进行赋值。这里,赋值操作要受到属性的数据类型和存储范围的制约。除此之外,没其他制约条件。但是,在实际问题中,我们往往需要给属性赋值加入额外的限制条件。这个条件就不能在属性声明时体现,我们只能通过方法进行限制条件的添加。(比如:setLegs()同时,我们需要避免用户再使用"对象.属性"的方式对属性进行赋值。则需要将属性声明为私有的(private).
    -->此时,针对于属性就体现了封装性。
    3.封装性思想具体的代码体现:
    体现一:将类的属性xxx私化(private),同时,提供公共的(public)方法来获取(getXxx)和设置(setXxx)此属性的值

    复制代码

    private double radius;
    public void setRadius(double radius){
    this.radius = radius;
    }
    public double getRadius(){
    return radius;
    }

    复制代码

    体现二:不对外暴露的私有的方法
    体现三:单例模式(将构造器私有化)
    体现四:如果不希望类在包外被调用,可以将类设置为缺省的。

    4.Java规定的四种权限修饰符
    4.1 权限从小到大顺序为:private < 缺省 < protected < public
    4.2 具体的修饰范围:

    4.3 权限修饰符可用来修饰的结构说明:
    4种权限都可以用来修饰类的内部结构:属性、方法、构造器、内部类
    修饰类的话,只能使用:缺省、public

  • 相关阅读:
    ASE19团队项目 beta阶段 model组 scrum report list
    ASE19团队项目 beta阶段 model组 scrum7 记录
    ASE19团队项目 beta阶段 model组 scrum6 记录
    ASE19团队项目 beta阶段 model组 scrum5 记录
    ASE19团队项目 beta阶段 model组 scrum4 记录
    ASE19团队项目 beta阶段 model组 scrum3 记录
    ASE19团队项目 beta阶段 model组 scrum2 记录
    ASE19团队项目 beta阶段 model组 scrum1 记录
    【ASE模型组】Hint::neural 模型与case study
    【ASE高级软件工程】第二次结对作业
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13308910.html
Copyright © 2011-2022 走看看