一个字啊,基础啊基础.万丈高楼平地起,基础是关键.
下面是小弟第一天看<<java编程思想>>的学习笔记,是简陋了些,不过它见证了我在java的路程上有一个历程的开始.
[b] 对象简介[/b]
1:你能解决的问题的复杂程度直接与抽象的种类与质量相关
2:程序员必须在机器模型与待解决的问题的模型之间建立关联.处理这种映射所带来的压力,以及编程语言对此无能为力的现实,造成了程序难写以及维护代价高昂的后果.此外它还带来一个副产业品,就是所谓的”编程方法”的行业
3: 我们将问题空间的元素同它在解决空间的表述称为”对象
4: Alan kay 总结了Smalltalk的五项基本特征.
A:万物皆对象
B:程序就是一组相互之间传递相信,告诉对方该干什么的对象
C:每个对象都用别的对象来足见它自己的记忆
D;对象都有类型
E:所有属于同一类型的对象能接受相同的消息
Booch 还 给对象下了更为简洁的定义:对象有状态,行为,标识
5.类描述的是一组具有相同特征(数据元素)和行为(功能)的对象,所以类实际上是一种数据类型。
类和数据类型的区别在于:类是程序员为解决特定问题而做的,而数据类型是为了表示机器的存储单元而设计的,它是现成的,是程序员无可奈何的选择。
6.对象会提供服务
当你开发一个程序或者分析一个程序的设计时,理解对象的最佳的方式是把它们当作“服务的提供者”。程序本身会用户提供服务,而它通过使用其它对象所提供的服务来完成这个工作。
将对象视作服务的提供者还一个额外的优点:能提高对象的内聚性。
每个对象应该只做一件事,并且作好一件事。
7.隐藏实现
隐藏实现,这一概念的重要性无论如何强调都不会过分。
第二个原因是允许类库的设计人员能在不打扰客户程序员的情况下修改类的内部工作方式。
(继承类能够访问protected成员,但是不能访问private成员)
8.代码复用是oop语言最显著的优点之一9.容器ArrayList和linkedlist的区别
两者都是简单的线形序列,都具有相同的接口和外部行为,但是在某些操作方面,他们的效率有天差地别。对与ArrayList,随机访问是一种时间恒定的操作,不论你访问那个元素,所需的时间是相同的。然而对linkedlist,随机访问和选取元素的代价会很大,但是另一方面,如果你要在这个序列中插入元素的话,linkedlist的效率会比arraylist的高出许多。所有这些差异都是源于其背后所使用的数据结构。
10.如果没有单根继承体系,或者系统不是通过reference来操控对象的话,要实现垃圾回收器是很难的。
下面是小弟第一天看<<java编程思想>>的学习笔记,是简陋了些,不过它见证了我在java的路程上有一个历程的开始.
[b] 对象简介[/b]
1:你能解决的问题的复杂程度直接与抽象的种类与质量相关
2:程序员必须在机器模型与待解决的问题的模型之间建立关联.处理这种映射所带来的压力,以及编程语言对此无能为力的现实,造成了程序难写以及维护代价高昂的后果.此外它还带来一个副产业品,就是所谓的”编程方法”的行业
3: 我们将问题空间的元素同它在解决空间的表述称为”对象
4: Alan kay 总结了Smalltalk的五项基本特征.
A:万物皆对象
B:程序就是一组相互之间传递相信,告诉对方该干什么的对象
C:每个对象都用别的对象来足见它自己的记忆
D;对象都有类型
E:所有属于同一类型的对象能接受相同的消息
Booch 还 给对象下了更为简洁的定义:对象有状态,行为,标识
5.类描述的是一组具有相同特征(数据元素)和行为(功能)的对象,所以类实际上是一种数据类型。
类和数据类型的区别在于:类是程序员为解决特定问题而做的,而数据类型是为了表示机器的存储单元而设计的,它是现成的,是程序员无可奈何的选择。
6.对象会提供服务
当你开发一个程序或者分析一个程序的设计时,理解对象的最佳的方式是把它们当作“服务的提供者”。程序本身会用户提供服务,而它通过使用其它对象所提供的服务来完成这个工作。
将对象视作服务的提供者还一个额外的优点:能提高对象的内聚性。
每个对象应该只做一件事,并且作好一件事。
7.隐藏实现
隐藏实现,这一概念的重要性无论如何强调都不会过分。
第二个原因是允许类库的设计人员能在不打扰客户程序员的情况下修改类的内部工作方式。
(继承类能够访问protected成员,但是不能访问private成员)
8.代码复用是oop语言最显著的优点之一9.容器ArrayList和linkedlist的区别
两者都是简单的线形序列,都具有相同的接口和外部行为,但是在某些操作方面,他们的效率有天差地别。对与ArrayList,随机访问是一种时间恒定的操作,不论你访问那个元素,所需的时间是相同的。然而对linkedlist,随机访问和选取元素的代价会很大,但是另一方面,如果你要在这个序列中插入元素的话,linkedlist的效率会比arraylist的高出许多。所有这些差异都是源于其背后所使用的数据结构。
10.如果没有单根继承体系,或者系统不是通过reference来操控对象的话,要实现垃圾回收器是很难的。