JAVA 学习周记
第二个礼拜学习了第一章对象导论的知识理论
- 基于面向对象语言、java语言的五个基本特性
- 万物皆为对象。 (对象可以存储数据,也可在自身上执行操作)
- 程序是对象的集合,他们通过发送信息来告知彼此要做的。
- 每个对象都有自己的由其他对象所构成的存储。 (每个对象会分配空间,可以进行存储)
- 每个对象都拥有其类型。(每个对象都是某个类的一个实例)
- 某一特定类型的所有对象都可以接收同样的信息。
总结:对象具有状态、行为和标识,每一个对象在内存中都有唯一的地址
2.每个对象都有一个接口
- 所有的对象都是唯一的,但同时也是具有相同的特性和行为的对象所归属的类的一部分。
- 类描述了具有相同特性(数据元素)和行为(功能)的对象集合,所以类实际上就是一个数据类型
- 面向对象程序设计的挑战之一,就是在问题空间的元素和解空间的对象之间创建一对一的类型
- 每个对象都只能满足某些请求,这些请求由对象的接口所定义,决定接口的便是类型
- JAVA 中在接口中定义的方法是抽象函数,无体函数
- 接口确定了对某一特定对象所能发出的请求,在程序中必须有满足请求的代码
总结:向某个对象“发送消息”(产生请求),这个对象便知道此消息的目的,然后执行对应的程序代码
3.被隐藏的具体实现
- 类创建者的目标是构建类,这种类只向客户端程序员暴露必需的部分,而隐藏了其他部分(客户端程序员不能访问它,类创建者可以任意修改被隐藏的部分)
- 访问控制的第一个原因:让客户端程序员无法触及他们不应该触及他们不应该触及的部分
- 访问控制的第二个原因:允许库设计者可以改变类内部的工作方式而不担心影响客户端程序员
- 类的内部设定边界:public 、private 、protected、默认的访问权限
4.复用具体实现
- 复用某个类的方式就是直接使用该类的一个对象
- 新的类可以由任意数量、任意类型的其它对象以任意可以实现新的类中想要的功能的方式的组成,在使用现有的类合成新的类,称为“组合”,组合被视为拥有关系
5.继承
- 源类(被称为基类、超类、父类)子类(导出类、继承类)
- 构造函数无法被继承
- 新的类型不仅包括现有类型的所有成员(尽管private成员被隐藏起来,并且不可访问),更重要的是复制了基类的接口
- 导出类和基类具有相同的类型
- 基类和导出类具有相同的接口,所以伴随接口的必定有某些具体的实现
- 为使基类和导出类产生差异:一是直接在导出类中添加新方法,二是改变现有基类的方法的行为,称之为覆盖