概述
第1章 对象导论
1.抽象过程
汇编语言-》“命令式”语言(基于汇编语言建立机器模型和实际待解决问题的模型)-》面向对象
java语言的5个特性:
万物皆对象
程序是对象的集合,他们通过发送消息来告知彼此所要做的。
每个对象都有自己的由其他对象所构成的存储
每个对象都拥有其类型
某一特定类型的所有对象都可以接收同样的消息。
2.每个对象都有一个接口
创建抽象数据类型(类)是面向对象程序设计的基本概念之一,。抽象数据类型的运行方式和内置类型几乎完全一致。面向对象程序设计的挑战之一就是在问题空间的元素和解空间的对象之间创建一对一的映射。
3.每个对象都提供服务
将每个对象看作服务提供方,有助于提高对象的内聚性,高内聚是软件设计的基本质量要求之一。即在良好的面向对象设计中,每个对象都可以很好的完成一项任务,但它不试图完成更多的事
4被隐藏的具体实现
类创建者:创建新数据类型的程序员
客户端程序员:那些在其应用中使用数据类型的类消费者
访问控制存在的原因:
1)让客户端程序员无法触及他们不应该触及的部分
2)允许库设计者可以改变内部的工作方式而不用担心会影响到客户端程序员
访问指定词
public:表示元素对任何人都是可用的
private:除类型创建者和类型的内部方法之外的任何人都不可以访问的元素
protected:继承的类可以访问protected成员,但不可以访问private成员
包访问权限:默认的访问权限,类可以访问在同一个包(库构件)中的其他类的成员,包之外的成员就如同private
5.复用具体实现
代码单元:类被创建并被测试完,在理想状态下代表一个有用的代码单元。
复用类的方式:组合(动态的组合被称为聚合)has-a ,继承is-a(编译器必须对通过继承创建的类施加编译时的限制)
6.继承
源类(基类、超类或者父类)
导出类,继承类或者子类
创建一个基类来表示系统中某些对象的核心概念,从基类型中导出其他类型,来表示此核心可以被实现的各种不同方式。
注:其中父类中的private成员不会被子类所继承
导出类复制了基类的接口,所有可以发给基类对象的消息同时也可以发给导出类对象
基类和导出类产生差异:在导出类中增加新方法,覆盖
纯粹替代(is-a):导出类对象来完全替代一个基类对象,通常称之为替代原则
非纯粹替代(is-like-a):基类无法访问新添加的方法
7.伴随多态的可互换对象
前期绑定:编译器将产生对一个具体函数名字的调用,而运行时将这个调用解析到将要被执行的代码的绝对地址
后期绑定:当向对象发送消息时,被调用的代码直到运行时才能确定。编译器确保被调用方法的存在,并对调用参数和返回值执行类型检查(java是强类型语言)。
在java中动态绑定是默认行为。
向上转型:将导出类看作是它的基类的过程。
8.单根继承结构
所有的类最终都继承自单一的基类。
9.容器(集合)
1)不同容器提供了不同类型的接口和外部行为2)不同的容器对于某些操作具有不同的效率
参数化类型(范型)机制:编译器可以自动定制作用于特定类型上的类
10.对象的创建和生命周期
在被称为堆(Heap)的内存池中动态的创建对象,在堆栈中创建存储空间和释放存储空间通常各需要一条汇编指令即可,分别对应将栈顶指针向下移动和将栈顶指针向上移动,创建堆存储空间的时间依赖于存储机制的设计
java采用动态内存分配方式(使用new关键字构建动态实例)
垃圾回收机制:自动发现对象何时不再使用,继而销毁他,用来处理内存释放问题。与所有对象都是继承自单根基类Object以及只能通过一种方式创建对象(在堆上创建)的特性结合。
11.异常处理
java内置了异常处理,唯一可接受的错误报告方式,编译时必须编写正确的处理异常代码,异常处理不是面向对象的特征
12.并发编程
线程是一种为单一处理器分配执行时间的手段
java的并发是内置于语言中的
13.java和Internet
最后
以上就是舒心蜗牛为你收集整理的《Java编程思想》读书笔记-第一章的全部内容,希望文章能够帮你解决《Java编程思想》读书笔记-第一章所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复