美文网首页
Java面向对象浅析

Java面向对象浅析

作者: Wilson_wad | 来源:发表于2019-08-07 15:39 被阅读0次

    面向对象概述

    传统的结构化程序设计通过设计一系列的过程(即算法)来求解问题。一旦确定了这些 过程, 就要开始考虑存储数据的方式

    因此传统的结构化程序的设计思路为:算法+数据结构=程序。先考虑算法,再考虑如何组织数据

    • 算法——如何操纵数据
    • 数据结构——数据的组织集合

    但是随着问题规模的不断增大,面向过程的线性设计显然不适合错综复杂的庞大系统设计,面向对象思想油然而生。面向对象设计优先考虑数据组织,再考虑如何操作数据。

    耍想实现一个简单的 Web 浏览器可能需要大约 2000 个过程,这些 过程可能需要对一组全局数据进行操作。采用面向对象的设计风格, 可能只需要大约 100 个 类,每个类平均包含 20 个方法。后者更易于程序员掌握, 也容易找到 bug 假设给定对象的数据出错了,在访问过这个数据项的 20 个方法中查找错误要比在 2000 个过 程中查找容易得多

    Java的类与对象

    Java中类与对象的关系实际上很好理解,很多书上说对象是"类的实例”

    “由类构造(construct) 对象的过程称为创建类的实例 (instance). ”,虽然很标准,但是并不通俗易懂。

    我们应该把java的类看作是一个模具,像是饼干模具、蛋糕模具、冰棍模具。

    那么Java对象自然而然得就是由模具生产出来的饼干、蛋糕、冰棍

    类是一个标准,一个规范。对象则是产物,是可以直接使用的,这样一来,对象叫做实例就很好理解了

    特性:

    • 封装
    • 继承

    对象

    • 对象中的数据称为实例域( instance field)

    • 操纵数据的过程称为方法(method )

    对象的三个主要特性:

    • 对象的行为(behavior):支持相同的行为而具有家族式的相似性。对象的行为是用可调用的方法定义的。
    • 对象的状态(state):每个对象都保存着描述当前特征的信息
    • 对象的标识(identity):对象的标识永远是不同的。以区别其他对象

    状态的改变不会是自发的。对象状态的改变必须通过调用方法实现。如果不是,则说明封装性遭到了破坏

    对象的状态影响它的行为。例如订单的状态是“未付款”,那么他就不能执行发货操作

    如何设计一个类?

    传统的过程化程序设计, 必须从顶部的 main 函数开始编写程序。在面向对象程序设计 时没有所谓的“ 顶部”。对于学习OOP 的初学者来说常常会感觉无从下手。

    答案是:首先从 设计类开始,然后再往每个类中添加方法。
    最简单的方法是:在分析问题的过程中,名词对应着数据,动词对应着方法

    当然如何分别名词动词全看个人经验与喜好,重要的是和谐、简洁、易于维护。

    类之间的关系

    常见的由三种:

    • 依赖use-a:用一个类的方法操纵另一个类的对象
    • 聚合has-a:类 A 的对象包含类 B 的对象
    • 继承is-a:

    Interesting

    getter/setter方法叫域访问器:laughing:

    Reference

    • BOOK-《Java核心技术-卷1-第10版》:第四章

    相关文章

      网友评论

          本文标题:Java面向对象浅析

          本文链接:https://www.haomeiwen.com/subject/iwoodctx.html