您的位置:首页 > 编程语言 > Java开发

《java编程思想》学习笔记—对象导论

2017-09-03 00:00 190 查看
摘要: 每日一搏,补周四

1.1抽象过程

1、人们所能解决的问题的复杂性直接取决于抽象的类型和质量。

2、对象具有状态,行为和标识。这意味着每一个对象都可以拥有内部数据(它们给出了该对象的状态)和方法(它们产生行为),并且每一个对象都可以唯一地与其他对象区分开来,具体来说,就是每一个对象在内存中都有一个唯一地地址。

1.2每个对象都有一个接口

1、面向对象程序设计的挑战之一,就是问题空间的元素和解空间的对象之间创建一对一的映射。

2、每个对象都只能满足某些请求,这些请求由对象的接口所定义,决定接口的便是类型。

3、接口确定了对某一特定对象所能发出的请求,但是,在程序中必须有满足这些请求的代码,这些代码与隐藏的数据一起构成了实现。

4、在类型中,每一个可能的请求都有一个方法与之相关联,当向对象发送请求时,与之向关联的对象就会被调用。

5、UML,每个类都用一个方框标识,类名在方框的顶部,任何数据成员都描述在方框的中间部分,法法在方框的底部。

参考博客:https://my.oschina.net/fuyong/blog/717505

1.3每个对象都提供服务

在良好的面向对象设计中,每个对象都可以很好的完成一项任务,但它并不试图做更多的事。

1.4被隐藏的具体实现

1、访问控制的第一个存在原因就是让客户端程序员无法触及他们不应该触及的部分。

2、访问控制的第二个存在原因就是允许库设计者可以改变类内部的工作方式而不用担心会影响到客户端程序员。

3java用三个关键字在类的内部设定边界:

public:任何人都可访问

private:创建者和类型的内部方法可访问

protected:创建者,类型的内部类方法,以及继承的类可以访问

没有任何限定词时:包内可以访问

1.5复用具体实现

1、最简单地复用某个类的方式就是直接使用该类的一个对象,此外也可以将那个类的一个对象置于某个新的类中。

2、理解组合和聚合的区别:

(1)组合视为has-a(拥有)关系:例如公司由多个部门组成,公司不存在了,部门也就不存在了

(2)聚合:例如一个部门由多个员工组成,如部门不撤销了,人不会消失

1.6继承

1、有两种方法可以使基类和导出类产生差异:

(1)一种方法非常直接:直接在导出类中添加新方法。

(2)改变现有基类的方法的行为,这被称之为覆盖。

2“是一个”与“像是一个”关系

是一个:用一个导出类对象来完全代替一个基类对象(称之替代原则);

像是一个:扩展接口,即再到处类型中添加新的接口元素。这个新的类型仍然可以替代基类,但这种替代并不完美,因为基类无法访问新添加的方法。

1.7伴随多台的可互换对象

1.8单根继承机构

java所有的类最终都继承单一的基类,即Object

1.9容器

1、为什么要使用容器?

由于不知道解决某个特定问题时需要多少个对象,或者他们讲存活多久,所以创建另一种对象型类型,这种新的对象类型持有对其他兑现的引用,在任何需要时都可以扩充自己以容纳你置于其中的所有东西。

2、为什么容器有多种类型?

(1)不同容器提供了不同类型的接口和外部行为。

(2)不同的容器对于某些操作具有不同的效率

3参数化类型

关于基类怎么调用子类的方法,可参考如下博客:

https://my.oschina.net/u/2427561/blog/1526877

1.10对象的创建和生命期

1.11异常处理:处理错误

1.12并发编程

1.13java与Internet

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: