Chapter 1:对象导论

纯粹的面向对象程序设计的几个特性:
1. 万物皆对象
2. 程序是对象的合集,他通过发消息告诉彼此要做什么
3. 每个对象都有自己的由其他对象所构成的存储
4. 每个对象都有其类型
5. 某一特定类型的所有对象都可以接收同一类型的消息

每个对象都有一个接口
每个对象都有自己的服务(这个是为了高内聚性)
具体类的实现被隐藏,调用方不需要知道被调用方的具体实现
复用具体类实现 代码复用是面向对象程序设计的最了不起的优点之一
使用现有的类合成新的类,这种概念称作组合。如果组合是动态发生的,这个称作聚合。 组合关系在UML图中是通过实心菱形来实现的,例如每个汽车都有一个引擎,则UML图中,引擎一个实心菱形指向汽车。

继承:
继承的UML图是子类一个空心的三角箭头指向基类

“是一个”与“像是一个”的关系:
最完美的继承就是子类不存在新增加的方法,而是覆盖父类的方法,实现新的功能。这是一种是一个的关系,但实际上这个情况比较完美。更多的情况下,子类肯定有新增的方法,这个就是 像是一个 的关系。

伴随多态的可互换方法:
基类中的方法操作都是泛化的,不关心具体子类,而是子类公用的。而多态的实现依赖于编译器的后期绑定的实现。具体调用的对象在方法调用时才确定。
子类转换成基类的过程称为向上转型,有向上转型的需要时才使用继承。

单根继承结构:
在java中所有类都继承自Object类

容器:
好的OOP语言都有容器,用来实现存储对象的集合。

参数化类型:
为了减少从集合中放入或者取出数据的各种转型。

对象的创建和生命周期:
java完全采用了动态内存分配的技术,当你想创建对象的时候就必须使用new关键字来构建对象的动态实例。
在栈上创建的对象,编译器可以知道他的生命周期并且动态的销毁他们,而在堆上创建的对象,就需要靠垃圾回收机制来实现了。

异常处理,处理错误:
自编程语言面世以来,错误处理时最困难的问题之一。异常处理不是面向对象的特征之一。

并发:
java的并发是内置于语言中的。

时间: 2024-10-10 13:45:46

Chapter 1:对象导论的相关文章

【Thinking in Java-CHAPTER 1&&2】对象导论&&一切都是对象

JAVA起源 从JDK诞生到现在已经有11年的时间了.沧海桑田一瞬间.转眼11年过去了,JDK已经发布了6个版本.在这11年里诞生了无数和Java相关的技术和标准.现在让我们进入时间隧道,重新回到1995年,再来回顾一下Java的发展轨迹和历史变迁. 一. JDK前传 在这个世界上,熟悉Java历史的人非常多,如果要问一个人Java是从哪年诞生的,也许大多数人都会回答是1995年(这个非常好记,因为微软的Windows95也是在这一年发布的).但事实上Java早在上个世纪90年代初就开始酝酿了.

【java编程思想--学习笔记(四)】对象导论

写这篇博客的前言: 长话短说,我希望通过阅读<java编程思想>来使我的代码 简洁可用 . 目的的层次不同,首先具体的目标是,了解Java的特性和巩固Java的基础. 更抽象的目的如下: 1.期待以巩固基础的方式,使代码优美,简洁,高效. 2.使自己写的模块能够开放适度,好用. 3.形成一种对代码是否优美的审美观. 于是<Java编程思想>第一章 对象导论 由此开始. 1.1 抽象过程 java 相对于命令式语言的优势在于只针对于待解问题建模.后者所做的主要抽象要求所做问题基于计算

Java编程思想 第一章、对象导论

对象导论阅读理解: 1.解决问题的复杂性直接取决于抽象的类型和质量(抽象类型及抽象的是什么?). 汇编语言是对底层机器的轻微抽象,而C.Basic等指令式语言都是对汇编语言的抽象,它们所做的主要抽象仍要求在解决问题时 要基于计算机的结构,而不是基于要解决的问题的结构来考虑,Java语言与C.Basic等相反,其面向问题空间的抽象而非计算 机底层实现来考虑问题结构. 2.解空间及问题空间 解空间:对应于机器模型,问题建模的地方: 问题空间:实际解决问题的模型,问题存在的地方,如一项业务: 3.对象

Think in Java(一):对象导论

1. OOP的特点 (1) 万物皆为对象; (2) 程序是对象的集合,他们通过发送信息来告诉彼此所要做的; (3) 每个对象都有自己的由其他对象所构成的存储; (4) 每个对象都拥有它的类型; (5) 某一特定类型的对象都可以接收同样的消息; 2. Java比C++简单? (1) Java有垃圾回收器, 不用手动销毁对象; (2) Java使用单根继承; (3) Java只能以一种方式创建对象(在堆上创建); Think in Java(一):对象导论

【Java编程思想】一、对象导论

作为一个电子专业的人,在学习了将近3年的嵌入式技术后,决定投奔移动互联网,在互联网大潮中急流勇进! 为了学习OOP(Object-oriented Programming),为了转向移动互联网,我决定开始学习android开发,那么就从Java开始吧! Java的学习资料很多,在研究几天之后,决定从<Java编程思想>这本书开始. 而在这本书之前,我已经看完了一个培训导师的Java4Android的Java教学视频,看的很快,因为我学过C和C++. 但我的Java水平依旧很差,主要在于面向对象

Java 基础之一对象导论

对象导论 1.1 抽象过程 所有编程语言都提供抽象机制.人们所能解决的问题的复杂性直接取决于抽象的类型和质量. 汇编语言是对底层机器的轻微抽象. 我们将问题空间中的元素及其再解空间中的表示称为对象.这种思想实质是:程序可以通过添加新类型的对象使自身适用于某个特定的问题. 万物皆为对象 可以抽取待求解问题的任何概念化构建表示程序中的对象. 程序是对象的集合 他们通过发送消息来告知彼此所要做的. 每个对象都有自己的由其他对象所构成的存储 每个对象都拥有其类型 某一特定类型的所有对象都可以接收同样的消

一 对象导论

java学习   对象导论 1.对象的抽象过程 所有的编程语言都提供抽象机制.可以认为,解决问题的复杂性直接取决于抽象的类型和质量. ▲面向对象程序设计方式的特性: 1)万物皆对象.你可以抽象待解决问题的任何概念化构件. 2)程序是对象的集合,它们可以通过发送消息来告知彼此所要做的. 3)每个对象都有自己的由其他对象所构成的存储. 4)每个对象都拥有其类型 5)某一特定类型的所有对象都可以接受同样的信息 2.每个对象都有一个接口 接口确定了对某一特定对象所能发出的请求. 3.每个对象都提供服务

对象导论系列---每个对象都至少有一个接口

对象导论系列---每个对象都至少有一个接口 面向对象程序设计主要是用来解决人们实际生产.生活中遇到的问题.通过将现实生活中的问题和解空间中的对象进行映射,并对对象进行抽象.关联.组合.发送消息来具体解决实际问题.现实生活中的实体也都是有自己的特性和行为的,并且每个实体都会与其范围内的其它实体有关系,有的是强关系,有的是弱关系. 下面看下本节的关键性概念(思想) 类:将具有相同特性和行为的一类实体定义为类.当看到类型一词时,可以将其作为类来考虑.因为类描述了具有相同特性(数据元素)和行为(功能)的

对象导论系列---每个对象都提供服务

对象导论系列---每个对象都提供服务 将对象作为服务提供者来看待是一件伟大的简化工具,这不仅在设计过程中非常有用,而且当其他人试图理解你的代码或重用某个对象时,如果他们看出了这个对象所能提供的服务的价值,他会使调整对象以适应其设计过程变得简单得多. 当你正在试图开发或理解一个程序设计时,最好的方法之一就是将对象想像为"服务提供者",程序本身将向用户提供服务,她将通过调用其它对象提供的服务来实现这一目的.你的目标就是去创建或者最好是在现有代码库中去寻找能够提供理想服务来解决问题的一系列对

Java编程思想总结(一)对象导论

Java编程思想总结(一)对象导论 1.1 抽象过程 万物皆对象. 程序是对象的集合(即:类),他们通过发送消息(调用方法)来告知彼此要做的. 每个对象都有自己的由其他对象所构成的存储(引用其他对象或基本类型,即组合). 每个对象都拥有其类型.每个类最重要的区别于其他类的特征就是“可以发送什么样的消息给它”(即调用方法). 某一特定类型的所有对象都可以接受同样的消息. 对象具有状态(成员属性).行为(成员方法)和标识(引用的名称).每个对象在内存中都有唯一的一个地址. 1.2 每个对象都有一个接