Java基础-对象导论
2016-04-20 23:46
288 查看
1.抽象过程
①万物皆对象。②程序是对象的集合,他们通过发送消息来告知彼此所要做的。③每个对象都有自己的由其他对象所构成的存储。④每个对象都拥有其类型。⑤某一特定类型的所有对象都可以接收同样的消息。
2.每个对象都有一个接口
①一个类就是一个数据类型。②每个对象都只能满足某些请求,这些请求由对象的接口所定义,决定接口的便是类型。3.每个对象都提供服务
①当正在试图开发或理解一个程序时,最好的方法之一就是将对象想象为“服务提供者”,程序本身向用户提供服务,它将通过调用其他对象提供的服务来实现这一目的。②有助于提供内聚性。
4.被隐藏的具体实现
①类创建着:目标构建类②客户端程序员:目标手机各种用来快速应用开发的类。
③访问控制:
第一个原因:让客户端程序员无法触及他们不应该触及的部分,这部分队数据类型的内部操作来说是必须的,但并不是用户解决特定问题所需的接口的一部分。
第二个原因:允许库设计者可以改变类内部的工作方式而不用担心会影响到客户端程序员。
关键字:public、protected、private、包访问权限(默认权限)
5.复用的具体实现
①一旦类被创建并被测试完,那么他就应该代表一个有用的代码单元。②组合:现有的类合成新的类(新的类可以由任意数量、任意类型的其他对象以任意可以实现新的类中想要的功能的方式所组成),即;一个类成为另一个类的成员对象
③聚合:动态发生的组合。
6.继承
①源类:基类、父类、超类②导副本:源类、继承类、子类
③类的等价性:圆形也是几何形
④导出类和基类产生差异的办法:增加新方法、覆盖
7.替代原则
①is-a:只覆盖基类的方法②like-a:新类型具有旧类型的接口,还增加了新方法
8.伴随多态的可互换对象
①在处理一个类型的层次结构时,经常想把一个对象不当作它所属的特定类型来对待,而是将其当作基类的对象来对待。②后期绑定:当向对象发送消息时,被调用的代码直到运行时才能确定。编译器确保被调用方法的存在,并对调用参数和返回值执行类型检查,但是并不知道将被执行的确切代码。
③向上转型:导出类看做是它的基类的过程,面向对象程序设计必须包含向上转型,因为这是将自己从必须知道确切类型中解放出来的关键。
9.单继承结构
单继承结构保证所有对象都具有某些功能,使垃圾回收机制实现简单得多(由于所有对象都保证具有其类型信息,因此不会因无法确定对象的类型而陷入僵局)。10.容器
①创建另一种类型,这种新的对象类型持有对其他对象的引用,在任何需要时候都可扩充自己以容纳你置于其中的东西。因此不需要知道将来会把多少个对象置于容器中,只需要创建一个容器对象,然后让它处理细节(List,map,set)②不同容器存在的意义:不同容器提供了不同接口合外部行为,不同容器对于某些操作具有不同的效率。
11.参数化类型
①向下转型:基类转换为导出类的过程②泛型
12.对象的创建和生命周期
①堆的内存池动态地创建对象。(动态方式带来更大的灵活性可以解决一般化编程的问题,但需要大量的时间需要在堆中分配存储空间),java用new关键字构建对象②对象的生命周期:GC会发现对象何时不再使用,从而销毁它。
13.异常处理
校正程序,恢复程序的执行,有助于编写更健壮的程序。14.并发编程
同一时刻处理多个任务。有时中断对于处理时间性强的任务是必须的,但是对于其他大量问题,我们只想把问题切分成多个可独立运行的部分,从而提高程序的响应能力。在程序中,这些彼此独立运行的部分称之为线程,上述概念被称为“并发”。相关文章推荐
- Struts标签库详解【3】
- Struts标签库详解【2】
- Java中自己定义缓存方式
- Struts标签库详解【1】
- [Java 并发] 线程的基本知识(一)
- 39.JAVA编程思想之外篇——JAVA图形化设计精简大全一文覆盖
- Java的字符串
- spring框架学习笔记(三)
- java中volatile关键字的含义
- 搭建SpringMVC+MyBatis开发框架六
- Spring AOP概述
- 用java写程序打印出100到200之间所有的素数
- Java时间格式转换大全
- java字符串大写转小写,小写转大写
- web day13 JSTL标签库(c标签,自定义标签),MVC设计模式,JavaWeb经典三层框架
- Mysql_JDBC_myeclipse_初探
- Java开发环境
- Unable to validate using XSD: Your JAXP provider [gnu.xm
- 搭建SpringMVC+MyBatis开发框架五
- Java IO:BIO和NIO区别及各自应用场景