一.面向对象程序设计基本特性
1.一切都是对象
2.程序是对象的集合,对象间通过发送消息告诉对方要做的事情
3.对象是类的实例
二.对象是服务的提供者
程序本身是向用户提供服务
因为程序通过调用对象的方法来提供服务,所以当开始设计程序时,我们可以问自己,要完成的需求是怎么样的?需要哪些对象去解决这个问题?系统现在提供的预定义对象哪些我们可以用?我们还需要创建哪些对象,这些对象能提供什么操作,他们还需要借助那些对象来帮他们解决问题?通过将问题分解为对象集合进行思考
三.怎么产生可复用的对象
需要丰富的经验和敏锐的洞察力
在建立类时,先考虑组合,因为其简单灵活;再用继承
组合:指A是B的一部分
继承:A是B的一种类型,子类继承父类的方法和属性,子类依赖于父类的实现细节,如果父类产生了变更,子类的后果将不堪设想。
四.面向对象的三大特征
继承(extends)
多态:使用接口实现多态,只是告诉使用的对象,你能够去做某些操作,具体你怎么实现我不管。
封装:使用访问权限修饰符进行修饰,保护数据安全
五后期绑定
后期绑定:当向对象发消息时,只有程序运行时才能某个方法具体是执行了哪个对象中的代码
六、java是单继承
所有类的基类是object
七,容器
八. 对象的生命周期我们知道用数组存储对象,必须知道有多少个对象。但是某些程序运行时,我们不知道该程序会需要多少对象,这些对象要存活多久,所以我们不知道用多少空间来存储对象.之前我们说过,oop是通过对象进行通信和存储的,所以别人就创建新的对象类型,用来存储这些运行时产生的对象的地址,这个新的对象类型就是容器。
容器主要用来存储对象和数据,根据不同的需求有不同的容器(List:用于存储序列;Map:建立对象间的关联;Set:不能重复),不同容器具有不同的行为,且运行效率不同,对系统性能影响也不同
对象什么时候生成
java使用动态内存分配:当需要创建新对象时使用new关键字进行创建
对象什么时候销毁
java提供了“垃圾回收“机制,他会自动发现对象何时不再被使用,并去销毁对象,从而释放该对象占用的内存空间,问题:怎么发现对象没有被使用
九.异常处理
异常也是一种对象,在出错点会被抛出
十.并发编程
并发:指多个线程同时执行
多个线程访问同一资源会出问题,怎么解决?某个线程在使用资源时,对共享资源加锁,当完成任务后,释放锁,让其它线程使用