java 学习 对象导论
1. 对象的抽象过程
所有的编程语言都提供抽象机制. 可以认为, 解决问题的复杂性直接取决于抽象的类型和质量.
▲面向对象程序设计方式的特性:
1)万物皆对象. 你可以抽象待解决问题的任何概念化构件.
2)程序是对象的集合, 它们可以通过发送消息来告知彼此所要做的.
3)每个对象都有自己的由其他对象所构成的存储.
4)每个对象都拥有其类型
5)某一特定类型的所有对象都可以接受同样的信息
2. 每个对象都有一个接口
接口确定了对某一特定对象所能发出的请求.
3. 每个对象都提供服务
把对象想象成 "服务提供者".
目标就是去创建 (或者最好是在现有代码库中寻找) 能够提供理想的服务来解决问题的一系列对象.
把对象看作是服务提供者还有一个好处就是: 有助于提高对象的内聚性.
高内聚是软件设计的基本质量要求之一: 这意味着一个软件构件的各个方面 "组合" 得很好.
4. 被隐藏的具体实现
访问控制的两个原因:
一个是让客户端程序员无法触及他们不该触及的部分.
另一个是允许库设计者可以改变类内部的工作方式而不用担心影响到客户端程序员.
Java 用三个关键字在类的内部设定边界: public,private,protected
public 表示紧随其后的元素对任何人都是可用的.
private 表示除类型创建者和类型的内部方法之外的任何人都不能访问的元素.
protected 和 private 的作用相当, 仅区别在于继承的类可以访问 protected 成员而不能访问 private 成员.
如果不用任何反问指定词时为包访问权限, 即类可以访问在同一个包 (库构件) 中的其他类的成员.
5. 复用的具体实现
复用: 直接使用一个类的一个对象.
创建成员对象: 将一个类的一个对象置于一个新的类中.
组合: 使用现有的合成新的类.
如果组合是动态发生的, 那么成为 "聚合".
组合经常被视为 "has-a"(拥有)关系.
在组合中, 新类中对象通常被声明为 private, 使使用新类的客户端程序员不能访问他们. 这样使你可以在不干扰现有的客户端代码的情况下修改这些新类的成员.
6. 继承
来源: https://www.cnblogs.com/zhyijun/p/9649157.html