`

Java面向对象概述

    博客分类:
  • JSE
阅读更多
 (如今的程序领域,大家都在说,面向对象OOP,但是真正能理解面向对象的含义的程序员却很少,究竟什么是对象,怎样面向对象)

  一.面向对象:

  1.何谓对象:在面向对象程序设计中,我们将问题空间中的元素以及他们在方案空间中的的表示物称作对象(object)
   Alan Kay总结了smalltalk中对象的5大基本特征:
  所有的东西都是对象。
  程序是一大堆对象的集合,他们通过消息传递,各个对象之间知道要做些什么。
  每个对象都分配有自己的存储空间,可容纳其他对象。
  每个对象都有一个类型。
  同一类的所有对象能接收相同的消息。
   -----而所有的编程语言的最终目的是提供一种抽象方法----

  2.对象的接口:我们向对象发出请求是通过它的接口定义的,对象的类型决定了它的接口形式。

  3.OOP中唯一关心的: 就是接口是什么,就像汽车的发动机一样,我们不必要知道它的结构是什么,只要它能工作就行了。所有的程序是由一定的属性(数据)和行为(方法)组成的,不同的对象访问通过函数调用来完成,对象间的所有交流都是通过方法调用,通过对封装数据对象,很大程度上提高复用率。

  4.对象的3个主要特征:
   behavior—说明这个对象能做什么。
   State—当对象施加方法时对象的反映。
   Identity---与其他相似行为对象的区分标志,每一个对象有唯一的indentity, 而这3者是相互影响的。

  5.面向对象中最重要的思想 就是类,类是模板是蓝图,从类中构造一个对象,即创建了一个类的实例。(类好比一个建材市场,其中有许多子类--各种各样的装饰材料,而我们装修自己的房子就要选择我们需要的材料,(为了建立我们自己的程序,我们必须选 择我们需要的类)这个比喻可以很形象的解释类是什么。

  6.类之间的关系:
   依赖关系:use-a A类中的一个方法操作了另一个类中的对象。
   聚合关系:has-a A类中的对象包含B类的对象。
   继承关系:is-a A继承了B类,此时A类不仅有了B类的方法,还加入了自己的方法。以便我们创建我们自己需要的对象。
  Java中定义的每一个类都必须继承另一个类,使用关键字extends,如果一个类在定义中不现实使用关键字extends,这个类就会隐式继承Object类。Object类又叫根超类,或基类。,我们从根超类继承来的叫子类。Java中每个类都是根超类的子类。

  8.接口(interface)规定了可对特定的对象发出哪些请求。

  9.继承=重新使用接口:创建出一个数据类型后,当需要新建立一个数据类型去实现相同的功能,是很没有意义的一件事,此时对其克隆后,再根据情况改进实现自己的目的就是继承。

  10.封装:就是把数据和行为结合在一起在一个包中,并对对象使用者隐藏数据的实现过程。Java用3个关键字来设置边界,从而进行对数据的隐藏。Public(共有)的定义任何人都可使用.private(私有)意味着除你自己,类型创建者及那个类型的内部函数成员可以访问外其他任何人使用都会产生错误。Friendly(友好)
  意味在包(package)中是可以访问的。(以上过程也可叫方案隐藏)

  11.引用(Handle)操控对象:
   当创建一个引用时必须要对其进行初始化
   例: String s=”happy”(未建立连接)
   String s=new string(“happy”)与一个新的对象连接使用new 。此句建立了一个引用,并且连接引用并初始化对象 赋值字符串“happy”.

  12.对象的创建及存在时间:数据存放的地点
   1:寄存器-速度快,数量少,在cpu内部,我们对寄存器没有控制权。
   2:堆栈:驻留长规内存中,堆栈指针下移建立新的内存,上移释放内存。
   3:堆:常用内存池,保存对象,有极大的灵活性,java的数据就存放在此,但是要以时间及效率为代价。Java的对象建立是在程序运行时才决定。而c++是在设计时建立对象。
  对象的生存时间(lifetime)java提出的垃圾收集器可以很好的发现无须再用的对象,使用GC(grabage collector)垃圾收集器。清除对象,释放内存。
  为此我们就要付出一定的运行期的开销。

  13.在此我们就会有这样一个印象,一个程序只是一系列对象的集合,他们的方法将其他对象作为自己的变量使用.

  14.主要类型: java的主要类型有:boolean,char,byte,short,int,long,float,double,void.这些主类型的大小都不随机器的结构变化而变化,提供了java很好的可移植性.

  15.字段方法:字段又叫数据成员,成员函数又叫方法,java的全部工作就是定义类,制作累得对象及发送消息.

  16.一个程序只是一系列对象的集合,他们的方法将其他的对象作为自己的变量使用,而且将消息发给那些对象.

  17.名字的可见性:为了使名字不重复,作者可以定义自己的库,一般用自己域名的倒写形式 如: COM.:Leeak.utility.foidles

  18.static关键字:即使没有创建对象,也需要一愕能调用的方法,此时可以使用static

  19.java.lang默认自动的导入每个java程序中

  20.OOP中对象使对属性和方法的封装,对象具有信息的隐蔽的性质,对细节的隐藏,对象只需要知道去这样做,而不知道如何做的细节,类的方法应谨慎控制对java数据的访问,可以用get读取方法,用set修改方法.

  21:pakage:Java API中每个类和接口属于一个特定的包,包实际上市对类和接口进行组织的目录结构,提供了一种软件复用机制.

  22.创建可复用的类得步骤:1.定义一个public类
   2.选择一个包名,并把pakage语句加到可复用的类的源码中.
   3.编译这个类.
   4.把可复用的类导入其他程序中即可.
  23.java中提出在类定义的括号外的仅有2个语句,pakage和import.

  24.软件的复用性,软件的复用性就是利用紫的已有的,定义良好的的经过仔细测试的文档清晰的可移植的易于获得的软件构件开发新的软件.

  以上就是java面向对象的一些基本术语的概述,其中的有些部分可以扩展的更深,看过think in java的 朋友就会有此种感觉.此文章向对初学者阐述了面向对象的基本概念.对已是java程序员的朋友可以对他们的基本知识做以回顾.





在 前 面 几 章 中 ,我 们 对 Java的 简 单 数 据 类 型 、 数 组 、 运 算 符 和 表 达 式 以 及 流 控 制 方 法
作 了 详 细 的 介 绍 。 从 现 在 开 始 ,我 们 要 深 入 到 面 向 对 象 的 编 程 技 术 ,深 入 到 Java最 吸 引 人 的
地 方 。 本 章 中 ,我 们 首 先 讲 述 面 向 对 象 程 序 设 计 的 基 本 概 念 及 特 点 ,然 后 讨 论 Java中 的 类 、
对 象 、 包 和 接 口 ,最 后 进 行 小 结 ,给 出 一 个 完 整 的 Java文 件 的 格 式 。

§ 6.1 面 向 对 象 的 程 序 设 计

面 向 过 程 的 程 序 设 计 方 法 从 解 决 问 题 的 每 一 个 步 骤 入 手 ,它 适 合 于 解 决 比 较 小 的 简 单
问 题 。 C语 言 采 用 面 向 过 程 的 程 序 设 计 模 型 ,但 是 由 于 C本 身 几 乎 没 有 支 持 代 码 重 用 的 语 言
结 构 ,并 且 缺 乏 统 一 的 接 口 ,使 得 当 程 序 的 规 模 达 到 一 定 程 度 时 ,程 序 员 很 难 控 制 其 复 杂 性


面 向 对 象 的 程 序 设 计 方 法 则 按 照 现 实 世 界 的 特 点 来 管 理 复 杂 的 事 物 ,把 它 们 抽 象 为 对
象 ,具 有 自 己 的 状 态 和 行 为 ,通 过 对 消 息 的 反 应 来 完 成 一 定 的 任 务 。

6.1.1 对 象 、 类 和 消 息

一 个 对 象 就 是 变 量 和 相 关 的 方 法 的 集 合 ,其 中 变 量 表 明 对 象 的 状 态 ,方 法 表 明 对 象 所
具 有 的 行 为 ,下 图 表 示 了 一 个 对 象 的 特 征 :

从 图 中 可 以 看 出 ,一 个 对 象 的 变 量 构 成 这 个 对 象 的 核 心 ,包 围 在 它 外 面 的 方 法 使 这 个
对 象 和 其 它 对 象 分 离 开 来 。 例 如 :我 们 可 以 把 汽 车 抽 象 为 一 个 对 象 ,用 变 量 来 表 示 它 当 前 的
状 态 ,如 速 度 、 油 量 、 型 号 、 所 处 的 位 置 等 ,它 的 行 为 则 可 以 有 加 速 、 刹 车 、 换 挡 等 。 我
们 操 纵 汽 车 时 ,不 用 去 考 虑 汽 车 内 部 各 个 零 件 如 何 运 作 的 细 节 ,而 只 需 根 据 汽 车 可 能 的 行
为 使 用 相 应 的 方 法 即 可 。 实 际 上 ,面 向 对 象 的 程 序 设 计 实 现 了 对 对 象 的 封 装 ,使 我 们 不 必
关 心 对 象 的 行 为 是 如 何 实 现 的 这 样 一 些 细 节 。 通 过 对 对 象 的 封 装 ,实 现 了 模 块 化 和 信 息 隐
藏 ,有 利 于 程 序 的 可 移 植 性 和 安 全 性 ,同 时 也 利 于 对 复 杂 对 象 的 管 理 。

对 象 之 间 必 须 要 进 行 交 互 来 实 现 复 杂 的 行 为 。 例 如 ,要 使 汽 车 加 速 ,必 须 发 给 它 一 个
消 息 ,告 诉 它 进 行 何 种 动 作 (这 里 是 加 速 )以 及 实 现 这 种 动 作 所 需 的 参 数 (这 里 是 需 要 达 到 的
速 度 等 )。 下 图 表 示 了 对 象 A与 对 象 B间 的 消 息 传 递 过 程 。

从 图 中 可 以 看 出 ,一 个 消 息 包 含 三 个 方 面 的 内 容 :

●   消 息 的 接 收 者

●   接 收 对 象 应 采 用 的 方 法

●   方 法 所 需 要 的 参 数 。

同 时 ,接 收 消 息 的 对 象 在 执 行 相 应 的 方 法 后 ,可 能 会 给 发 送 消 息 的 对 象 返 回 一 些 信 息
(如 上 例 中 ,汽 车 的 仪 表 上 会 出 现 已 经 达 到 的 速 度 等 )。

由 于 任 何 一 个 对 象 的 所 有 行 为 都 可 以 用 方 法 来 描 述 ,通 过 消 息 机 制 就 可 以 完 全 实 现 对
象 之 间 的 交 互 ,同 时 ,处 于 不 同 处 理 过 程 甚 至 不 同 主 机 的 对 象 间 也 可 以 通 过 消 息 实 现 交 互


上 面 所 说 的 对 象 是 一 个 具 体 的 事 物 ,例 如 每 辆 汽 车 都 是 一 个 不 同 的 对 象 。 但 是 多 个 对
象 常 常 具 有 一 些 共 性 ,如 所 有 的 汽 车 都 有 轮 子 、 方 向 盘 、 常 具 有 一 些 共 性 ,如 所 有 的 汽 车
都 有 轮 子 、 方 向 盘 、 刹 车 装 置 等 。 于 是 我 们 抽 象 出 一 类 对 象 的 共 性 ,这 就 是 类 。 类 中 定 义
一 类 对 象 共 有 的 变 量 和 方 法 。 把 一 个 类 实 例 化 即 生 成 该 类 的 一 个 对 象 。 比 如 我 们 可 以 定
义 一 个 汽 车 类 来 描 述 所 有 汽 车 的 共 性 。 通 过 类 的 定 义 人 们 可 以 实 现 代 码 的 复 用 。 我 们 不
用 去 描 述 每 一 个 对 象 (如 某 辆 汽 车 ),而 是 通 过 创 建 类 (如 汽 车 类 )的 一 个 实 例 来 创 建 该 类 的 一
个 对 象 ,这 大 大 减 化 了 软 件 的 设 计 。
分享到:
评论

相关推荐

    JAVA面向对象概述

    原创java基础教学ppt, 涉及java最主要的三个特征讲解,对于java入门人员来说通俗易懂。内容点比较全面

    Java面向对象软件开发

    1-面向对象软件开发概述;2-Java语言概述;3-java语言基础;4-面向对象程序设计1;5-面向对象程序设计2;6-工具类与算法;7-图形用户界面设计与实现;8-Java高级编程1(异常处理);8-Java高级编程2(多线程);8-Java高级...

    java面向对象

    #### 一、Java面向对象概述 **面向对象**是一种重要的编程范式,它改变了我们构建软件系统的方式。在面向对象编程(OOP)中,一切皆被视为“对象”。对象不仅拥有自己的状态(属性),还具备一系列能够作用于自身的...

    Java面向对象程序设计教程PDF,完整的面向对象编程指南,大量习题便于自学。

    Java面向对象程序设计是Java语言的核心特性之一,也是学习Java编程不可或缺的部分。本教程全面深入地探讨了这一主题,旨在帮助初学者和有一定基础的开发者更深入地理解面向对象编程的概念和实践。以下是对该教程内容...

    Java面向对象程序设计:第2版:英文

    全书共12章,内容包括面向对象程序设计概述,Java语言概述,Java语言基础,类、对象和接口,包和Java基础类,Java异常处理,Java图形用户界面设计,Applet及其应用,I/O系统,多线程编程,多媒体编程和网络编程等。

    java面向对象程序设计课程每章ppt(共15章+复习1章).zip

    第1章 Java概述.pptx 第2章 Java基础.pptx 第3章 数组.pptx 第4章 类和对象(1).pptx 第4章 类和对象(2).pptx 第5章 类的继承.pptx 第6章 抽象类和接口.pptx 第7章 多态.pptx 第8章 包装器类.pptx 第9章 内部类....

    JAVA面向对象编程_孙卫琴2.pdf

    ### JAVA面向对象编程的核心知识点解析 #### 一、面向对象编程概述 面向对象编程(Object-Oriented Programming,简称OOP)是一种计算机编程架构。它将计算机程序设计成由简单的称为“对象”的基本单位组成。面向...

    Java和面向对象概述.pptx

    Java语言是面向对象编程的代表之一,广泛应用于各种软件开发领域。 在软件开发历史中,从早期的面向过程编程(如Fortran、Pascal和C语言)到面向对象编程的转变,反映了软件开发方法的演进。面向过程编程以步骤和...

    JAVA面向对象编程_孙卫琴.pdf

    ### JAVA面向对象编程知识点概述 #### 一、面向对象编程基础 面向对象编程(Object-Oriented Programming,简称 OOP)是一种程序设计思想,它将数据和操作数据的方法定义为统一的整体——对象(Object),并通过类...

    JAVA面向对象程序设计试题与解析库

    ### JAVA面向对象程序设计知识点详解 #### 一、Font类详解 Font类是Java AWT包中的一个重要组成部分,主要用于设置程序中的字体实例对象。通过Font类,开发者可以在Java应用程序中自定义字体,包括字体的外观、样式...

    JAVA面向对象基础测试题-继承-封装-多态等测试题.docx

    ### 面向对象基础知识概述 面向对象编程(Object-Oriented Programming, OOP)是一种编程范式,它将数据和处理数据的方法绑定在一起,形成一个整体——对象。OOP 的主要特征包括封装、继承和多态。 1. **封装**:...

    Java和面向对象概述.ppt

    Java的特点包括:简单性、面向对象、分布性、鲁棒性(健壮性)、安全性、体系结构中立、可移植性、解释执行、高性能、多线程和动态性。它的应用范围广泛,不仅涵盖了传统的软件开发,还在互联网应用、动态网页设计、...

    JAVA面向对象课件PPT

    一、面向对象概述 面向对象是一种以事物为中心的编程思想,主要依靠对象之间的交互完成一件事情。面向对象编程强调的是对象,而不是过程。面向对象的优点是可重用性和可维护性较好,代码灵活,可读性好。但是,面向...

    java面向对象软件开发概述实用教案.ppt

    总之,Java面向对象软件开发概述教案旨在教授如何使用Java语言来创建和操作代表现实世界实体的对象,通过理解对象的属性和行为,以及如何通过消息传递实现对象间的交互,来解决复杂问题。这种编程范式使得软件设计...

Global site tag (gtag.js) - Google Analytics