• JAVA 面向对象编程 --自我总结


    子系统

    系统结构是指由系统多个子系统组成,以及子系统由多个更小的子系统组成的结构。那么子系统又具备哪些特点呢?

    特点:

    1、结构的稳定性 :软件在设计阶段,在把一个系统划分成更小的子系统时,设计合理,使得系统的结构比较健壮,能够适用用户变化的需求

    2、可扩展性 :当软件增加新的功能时,可在现有子系统的基础上创建出新的子系统,该子系统继承了原有原子系统的一些特性,并且的具有一些新的特性,从而提高了软件的可重用性和可扩展性。

    3、内聚性:每个子系统只完成特定的功能,不同子系统之间不会有功能的重叠。为了避免子系统之间的重叠,每个子系统的粒度都要尽可能的小,按这种方式构成的系统 结构被称为精粒度系统结构。子系统的内聚性会提高软件的可重用性和可维护性。

    4、可组合性:若干精粒度的子系统经过组合,就变成了大系统。子系统的可组合性会提高软件的可重用性和可维护性,并且能简化软件的开发过程。

    5、松耦合性:子系统之间相互独立,修改了一个子系统,不会影响到其他子系统。当用户烦需求发生变化时,只需要修改特定子系统的实现方式,从而提高软件的可维护性。

    软件开发拥有两大类{结构化开发和面向对象开发}

    面向对象--对象具有以下特性:

    1、万物皆对象

    2、每个对象都是唯一的。   对象的唯一性来自于真实世界中事物的唯一性

    3、对象具有属性和行为

    4、对象具有状态   状态是指某个瞬间对象的各个属性的取值,对象的某些行为往往会改变对象自身的状态,即属性的取值

    5、对象都属于某个类,每个对象都是某个类的实例

         同一类的所有实例具有相同属性,表面他们属性的含义相同,但是他们的状态是不一定相同的,也就是属性取值不一定相同

        同一个类的所有实例包括类本身的所有实例及其子类的所有实例,类的所有实例具有相同行为,以为着他们具有一些相同的功能。类本身的所有实例按同样方式实现相同功能,而子类于父类之间的,以及子类之间的实例则可能采用不同的方式来实现相同的功能。

    接口

    在JAVA中接口有两种意思:

    1、指以上介绍的感念性的接口,即指系统对外提供的所有服务,在对象中变现为public 类型的方法的声明。

    2、指用interface 关键字定义一个实实在在的接口,也称为接口类型,它用于明确的描述系统对外提供的所有服务,他能够更加详细地把系统的实现细节与接口分离

    封装、透明

    封装是指隐藏对象的属性和实现细节,仅仅对外公开接口。封装能为软件系统带来以下优点:

    1、便于使用者正确,方便的理解和使用系统,防止使用者错误修改系统属性

    2、有助于建立各个系统之间的松耦合关系,提高系统的独立性

    3、提高软件的可重用性,每个系统都是一个相对独立的整体,可以在多种环境中得到重用

    4、降低了构建大型系统的风险,即使整个系统不成功,个别的独立子系统有可能依然是有价值的

    在java 语言中提供了4种访问控制级别:

    1).public :对外公开,访问级别最高

    2).protected:只对同一个包中的类或者子类公开

    3).private:不对外公开,只能在对象的内部访问,访问级别最低

    4).默认:只对同一个包中的类公开

    封装的两个原则(大致):

    1、把尽可能多的东西藏起来,对外提供简捷的接口

            系统的封装程度越高,那么它的相对独立性就越高,而且使用起来也更方便

    2、把所有属性藏起来

         假如某种属性允许外界访问,那么提供访问该属性的公开方法

    为什么不把volume 属性定义为public 类型,让使用者直接访问呢?

    原因:

    1、更符合真实世界中外因通过内因引起的客观规律,一个对象的属性发生变化应该是外因和内因共同作用的结果

    2、能够灵活地控制属性的读音和修改的内部访问级别。对象的有些属性只允许使用者读,但不允许使用者修改,而只有对象内部进性更改

    3、防止使用者错误地修改属性

    4、有助于对象封装实现细节   有时候,如果对象的一个属性发生改变,在它的内部就会发生一系列的练过反应,但这些反应都是透明的。

  • 相关阅读:
    前端开发者进阶之ECMAScript新特性--Object.create
    JS事件:target与currentTarget区别
    30分钟掌握ES6/ES2015核心内容
    百度跨域搜索demo
    <a>标签的SEO优化细节
    jQuery之异步Ajax请求使用
    小tips: zoom和transform:scale的区别
    JSP页面静态化总结之一使用URLRewrite实现url地址伪静态化
    web前端安全机制问题全解析
    【转】Asp.net MVC Comet推送
  • 原文地址:https://www.cnblogs.com/zsping/p/5520283.html
Copyright © 2020-2023  润新知