Thinking in java(1):对象导论
纯粹的面向对象程序设计的几个特性:
1. 万物皆对象
2. 程序是对象的合集,他通过发消息告诉彼此要做什么
3. 每个对象都有自己的由其他对象所构成的存储
4. 每个对象都有其类型
5. 某一特定类型的所有对象都可以接收同一类型的消息
每个对象都有一个接口
每个对象都有自己的服务(这个是为了高内聚性)
具体类的实现被隐藏,调用方不需要知道被调用方的具体实现
复用具体类实现 代码复用是面向对象程序设计的最了不起的优点之一
使用现有的类合成新的类,这种概念称作组合。如果组合是动态发生的,这个称作聚合。 组合关系在UML图中是通过实心菱形来实现的,例如每个汽车都有一个引擎,则UML图中,引擎一个实心菱形指向汽车。
继承:
继承的UML图是子类一个空心的三角箭头指向基类
“是一个”与“像是一个”的关系:
最完美的继承就是子类不存在新增加的方法,而是覆盖父类的方法,实现新的功能。这是一种是一个的关系,但实际上这个情况比较完美。更多的情况下,子类肯定有新增的方法,这个就是 像是一个 的关系。
伴随多态的可互换方法:
基类中的方法操作都是泛化的,不关心具体子类,而是子类公用的。而多态的实现依赖于编译器的后期绑定的实现。具体调用的对象在方法调用时才确定。
子类转换成基类的过程称为向上转型,有向上转型的需要时才使用继承。
单根继承结构:
在java中所有类都继承自Object类
容器:
好的OOP语言都有容器,用来实现存储对象的集合。
参数化类型:
为了减少从集合中放入或者取出数据的各种转型。
对象的创建和生命周期:
java完全采用了动态内存分配的技术,当你想创建对象的时候就必须使用new关键字来构建对象的动态实例。
在栈上创建的对象,编译器可以知道他的生命周期并且动态的销毁他们,而在堆上创建的对象,就需要靠垃圾回收机制来实现了。
异常处理,处理错误:
自编程语言面世以来,错误处理时最困难的问题之一。异常处理不是面向对象的特征之一。
并发:
java的并发是内置于语言中的。
Thinking in java(1):对象导论的更多相关文章
- Thinking In Java读书笔记--对象导论
Thinking In Java读书笔记--对象导论[对象]服务提供者==>将对象看做一个服务提供者[程序员分类][类创造者]/[客户端程序员] [访问控制存在的原因?][1]客户端程序员无法触 ...
- Java编程思想读书笔记(一)【对象导论】
2018年1月7日15:45:58 前言 作为学习Java语言的经典之作<Java编程思想>,常常被人提起.虽然这本书出版十年有余,但是内容还是很给力的.很多人说这本书不是很适合初学者,我 ...
- 《Java编程思想》读书笔记-对象导论
计算机是头脑延伸的工具,是一种不同类型的表达媒体.本文以背景性的和补充性的材料,介绍包括开发方法概述在内的面向对象程序设计(Object-oriented Programming,OOP)的基本概念. ...
- java编程思想(1)--对象导论
对象导论: 1.1 抽象过程 所有的语言都有抽象机制,抽象是解决复杂问题的根本方法.例如:汇编语言是对底层机器的轻微抽象.命令式语言(如:FORTRAN.BASIC.C)又是对汇编语言的抽象. jav ...
- Java 基础之一对象导论
对象导论 1.1 抽象过程 所有编程语言都提供抽象机制.人们所能解决的问题的复杂性直接取决于抽象的类型和质量. 汇编语言是对底层机器的轻微抽象. 我们将问题空间中的元素及其再解空间中的表示称为对象.这 ...
- Java对象导论
Java对象导论 1.1 抽象过程 万物皆对象. 程序是对象的集合(即:类),他们通过发送消息(调用方法)来告知彼此要做的. 每个对象都有自己的由其他对象所构成的存储(引用其他对象或基本类型,即组合) ...
- [Java编程思想] 第一章 对象导论
第一章 对象导论 "我们之所以将自然界分解,组织成各种概念,并按其含义分类,主要是因为我们是整个口语交流社会共同遵守的协定的参与者,这个协定以语言的形式固定下来--除非赞成这个协定中规定的有 ...
- 【Think In Java笔记】第1章 对象导论
1. 对象导论 OOP 面向对象编程 C.Basic等语言所在的抽象仍要求在解决问题时基于计算机的解决,而不是基于所解决问题的结构来考虑. 要建立起问题空间的元素和解空间的对象之间一一映射的关系 万物 ...
- 【Thinking in Java-CHAPTER 1&&2】对象导论&&一切都是对象
JAVA起源 从JDK诞生到现在已经有11年的时间了.沧海桑田一瞬间.转眼11年过去了,JDK已经发布了6个版本.在这11年里诞生了无数和Java相关的技术和标准.现在让我们进入时间隧道,重新回到19 ...
- 规则引擎集成接口(九)Java类对象
Java类对象 右键点击“对象库” —“添加java类对象”,如下图: 弹出窗体,在文本框中输入类的全名“com.flagleader.test.Test”,选择该类型后确定,如下: 显示如下,勾选上 ...
随机推荐
- Visual Studio Code 基本操作 - Windows 版
1.Install the .NET SDK 2.Create app: dotnet new console -o myApp cd myApp 3.Run your app:dotnet run
- 在ASP.NET根据DataTable中的内容导出Excel
前台代码: <asp:Button ID="btnExcel" runat="server" Text="Excel导出" CssCl ...
- JavaScript 对象属性
JavaScript 对象属性 属性中的 . 和 [ ](点 和 方括号)的区别 . :取对象自身的属性值: [ ]:括号内容可以是变量: var obj = {}; obj.name = 'Twx ...
- unity 序列化和反序列化
什么是序列化和反序列化(1)序列化是指把对象转换为字节序列的过程,而反序列化是指把字节序列恢复为对象的过程:. (2)序列化:对象序列化的最主要的用处就是在传递和保存对象的时候,保证对象的完整性和可 ...
- 2、Orcal数据库创建第一个(管理员)连接
(注意这里第一个创建的是管理员连接也是我们的总连接,之后我们所有的其他新用户都要创建在它里面,所以它的一些属性我们在填写以及设置时需要注意!!!) 1.确认Orcal服务开启: 2.创建连接: 打开我 ...
- SoundPool
如果应用程序经常播放密集.急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了.因为MediaPlayer存在如下缺点: 1) 延时时间较长,且资源占用率高. 2) 不支持 ...
- java学习笔记—HTTP协议(10)
客户端浏览器和服务器Tomcat要进行基本的请求和响应的处理. 其实浏览器和服务器通信的数据的格式已经使用协议进行固定好了,只要双方发送固定格式的数据,那么就可以完成基本的通信. 如果开发者需要查看这 ...
- django model改变后,同步数据库
在使用django进行开发时,往往需要根据不同的需求对model进行更改.而这时候,python manage.py syncdb就不好使了. 目前有个很好的工具,是south,这个是专门用来更改mo ...
- ansible api2.0 多进程执行不同的playbook
自动化运维工具:ansible 多进程调用ansible api的应用场景: 应用系统检查 一个应用系统可能具有20—50台服务器的集群,初步的系统层面检查可以用一个统一的playbook来检查, ...
- 考试题 T1
题意分析 就是让你求 \[\sum_{i=1}^{|S|}val[i][gcd(a[i],x)=y]\] 那么接下来就是化简式子 \[\sum_{i=1}^{|S|}val[i][gcd(\frac{ ...