Thinking in Java (Java编程思想) 学习总结心得(一)
前序:
学习java也已经有大约两年时间,但大多数断断续续,零散没有系统学习。这次经多方推荐购买了一本java学习必读书籍《Thinking in Java》学习之余将书中的心得和书中的重点内容总结写于此。
第一章 对象导论
我们之所以将自然界分解,组成各种概念,并按其含义分类,主要是因为我们是整个口语交流社会共遵守的协定和参与者,这个协定以语言的形式固定下来··· 除非赞成这个协定中规矩有关语言信息的组织和分类,否则我们根本无法交流 –Benjamin Lee Whorf (1897~1941)
在工业革命期间我们用于改变生产力的主要工具是机器,随后到啦第三次工业革命,改变生产力的工具类似变成啦一个计算机的机器去操作其他机器而这个计算机这个机器并非简单的机器 它就像一个人的大脑去控制其他的机器,所以计算机思维也是人的思维。而面向对象程序设计(OOP,Object-oriented Programming) 也是人的思维抽象产生的一种编程设计方2式。它将世界万物抽象为对象万物之间的交流关系用对象来控制。
1.1 抽象过程
所以编程语言都提供了抽象机制。人们所能解决的问题的复杂性直接取决于抽象的类型和质量。
汇编语言是对底层机器的轻微抽象 。 接着产生很多命令式语言 (BASIC C “`)都是对汇编语言的抽象····
面对对象方通过向程序员提供表示问题空间中的元素的工具而更进一步。这种思想的实质是:程序可以通过添加新类型的对象使自身适用于某个特定的问题。就好像(四边形和正方形的关系)
面对对象语言的五个基本特征
- 万物皆为对象
- 程序是对象的集合,他们通过发送消息来告知彼此要做什么
- 每个对象都有自己的由其他对象所构成的存储
- 每个对象都有其类型
- 每一特定的所有对象都可以同时接收同样的消息。
简洁描述: 对象具有状态, 行为 和 标识。这意味着每一个对象都可以拥有内部数据和方法(不同的状态定义的属性和方法)并且每一个对象都可以唯一地与其他对象区分出来。具体来说就是每一个对象在内存中都有一个唯一的地址。
1.2 每个对象都有一个接口
亚里士多德大概是第一个深入研究类型(type)的哲学家,他曾提出过鱼类和鸟类这样的概念。所有的对象都是唯一的,但同时也是具有相同特征和行为的对象所归属的一部分。这种思想直接被应用于第一个面向对象语言 Simula-67,它在程序中使用基本的关键字 class 来引入新的类型。