#Java编程思想 笔记001

Java编程思想 笔记001

对象导论

"我们之所以将自然界分解,组织成各种概念,并按其**含义分类**,主要是因为我们是整个口语交流社会共同遵守的协定和参与者,这个协定以语言的形式的形式固定下来......除非咱曾这个规定中规定的有关语言信息的**组织和分类**,否则我们根本无法交谈" 
                                    -Benjamin Lee Whorf(1897~1941)

计算机革命起源于机器,因此,编程语言的产生也始于对机器的模仿。
计算机是头脑延伸的工具。

抽象过程

所有编程语言都提供抽象机制。
    人们所能解决问题的复杂性直接取决于抽象的类型和质量。所谓的“类型”是指"所抽象的是什么?"

五个特性

1.万物皆为对象
将对象视为奇特的变量,它可以存储数据,除此之外,你还可以要求它在自身上执行操作。 你可以抽取待求解问题的任何概念化构件,将其表示为程序中的对象。

2.程序是对象的集合,它们通过发送消息来告诉彼此所要做的
请求对象步骤: 发送消息->对象
可以把消息想象为针对某个特定对象的方法的调用请求

3.每个对象都有自己的由其他对象所构成的存储
可以通过创建包含现有对象的包的方式来创建新类型的对象。因此,可以把程序中构件复杂的体系,同时将其复杂性隐藏在对象的简单行背后。

4.每个对象都拥有其类型
每个对象都是某个类(Class)的一个实例(instance)。
每个类最重要的区别于其他类的特性就是”可以发送什么样的消息给它”
5.某一个特定类型的所有都可以接收同样的消息
泛型
圆形 -方形 都是几何形-所以说 几何形性质相关的事务 都可以用在这两个上面。
这种替代性(substitutability)是OOP中最强有力的概念之一

每个对象都有一个接口

所有对象都是唯一的,但同时也具有相同的特性和行为的对象所归属类的一部分。

类描述了具有相同特性(数据元素)和行为(功能)的对象集合,所有一个类实际上就是一个数据类型,例如所有浮点型数字具有相同的特性和行为集合。

面向对象设计挑战:问题空间的元素和解空间的对象之间创建一对一的映射。

每一个可能请求都有一个方法与之相关联,当向对象发送请求时,与之相关联的方法就会被调用。
此过程通常被概况为:向某个对象“发送消息(产生请求)”,这个对象遍知道此消息的目的,然后执行相应的程序代码。

每个对象都提供服务

对象想象成“服务提供者”程序本身将向用户提供服务,它将通过调用其他对象提供的服务来实现这一目的。

复用具体实现

一旦类被创建并测试完,那么它就应该(在理想情况下)代表一个有用的代码单元。
最简单地服用某个类的方式就是直接使用该类的一个对象,此外也可以将那个类的一个对象置于某个新的类中。我们称为“创建一个成员对象”。
新的类可以由任意数量,任意类型的其他对象以任意可以实现新的类中想要的功能的方式所组成。因为是在使用现有的类合成新的类,我们称为“组合(composition)”

总结

面向对象总是向着模仿现实的事物而出发,现实所有的事物都有两种属性:行为(方法)特征(属性),万物皆对象是表示面向对象最高深的境界一花一草都是一个对象,在常人眼中都是无法想象的吧。

一般来说面向对象有三大特征:封装,继承,多态。

类创建的时候 我们应该本着 它有什么职责,需要什么职责,向别人提供什么服务,而不是像面向过程一样,一步步来实现,我们调用对象的时候,不应该什么都是我们自己完成的思想,而是 我让你做。
我们做的只是创建对象,然后给对象发个消息,让它做某些事情,而不是像面向过程编程一样,什么事情都是我们来做。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值