1.Java对象导论
2019-02-14 本文已影响0人
云木杉
新年开始,踏踏实实走路,从哪儿开始呢,当然是本质的Java了,Java核心思想开路吧!
抽象过程
面向对象五大特性
- 这些是一些笔记,并没有通俗的讲义,用来复习使用
- 1)万物皆对象。将对象视为奇特的变量,可以存储数据。可以在自身上操作。
- 2)程序是对象的集合,它们通过发送消息来告知彼此所要做的。
- 3)每个对象都有自己的由其他对象所构成的存储
- 4)每个对象都拥有其类型
- 5)某一特定类型的所有对象都可以接收同样的消息
简介描述:对象具有状态、行为和标示。意味着每个对象都可以拥有内部数据(对象的状态 成员变量)和方法(对象的行为 成员函数),并且每个对象都可以唯一地与其他对象区分开,具体来说,就是每个对象在内存中都有一个唯一的地址。
每个对象都有一个接口
- 其实就是把一些共性抽取出来,向上抽取
每个对象都提供服务
- 将对象想象为“服务提供者”
- 高内聚:通俗的来讲,就是把详细的任务拆分,不要把过多的任务放到一个类中,而是把各个单独的任务完美的聚合到一起,完成功能实现。
被隐藏的具体实现
- public 公开访问权限,即任何一个类都可以访问
- private 私有访问权限,即只有类创建者与类内部可以调用
- protected 继承时,跟private权限无差,只是在继承的时候可以访问protected成员。
- 默认访问 包访问权限,在同一个包内,可以访问。
复用具体实现
- 聚合:复用具体实现最简单的方式就是直接使用该类的一个对象,也可以将那个类的一个对象置于某个新的类中。因为是使用现有类合成新类,所以这种概念叫组合,由于组合是动态发生的,那么它通常称为聚合。
继承
- 继承就是使用基类型和导出类型的概念表示了这种类型之间的相似性。
基类与导出类的差异性(如果导出类与基类属性与行为类似,继承将无任何意义)
- 在导出类中添加新方法
- 导出类的方法覆盖基类方法
“是一个”与“像是一个”
- 继承只覆盖基类的方法,意味着导出类与基类是完全相同的类型,具有完全相同的接口,我们将基类与导出类的关系称为is-a“是一个”关系
- 有时添加新的接口元素,扩展了接口,仍然可以替代基类,但因为基类无法访问新添加的方法。我们称为is-like-a(像是一个)
伴随多态的可互换对象
- 啥叫一脸懵逼,这就叫一脸懵逼
单根继承结构
- 单根机构保证所有对象都具备某些功能,使垃圾回收器的实现变的容易的多。
- 模糊 模糊 模糊
容器
- 容器本身就是一个对象,又是用来储存对象的(持有对其他对象的引用)。
- 泛型 容器储存的一种安全保障
对象的创建和生命期
- 使用对象时,最关键的就是生成与销毁。
- 为了追求最大的执行速度,对象的存储空间和生命周期可以在编写程序时确定,这可以通过将对象置于堆栈或静态存储区域内来实现。这种方式将储存空间分配和释放置于优先考虑的位置,某些情况下这样控制非常有价值,但也牺牲了灵活性。
- 第二种是在被称为堆的内存池汇总动态的创建对象。这种方式知道运行时才知道需要多少对象,声明周期如何,以及具体类型,只能在程序运行时相关代码被执行到的那一刻才能确定 Java采用动态分配内存的方式,每当要创建对象时,就使用new关键字来构建此对象的动态实例。
异常处理:处理错误
并发编程
- 并发编程的概念,就是在同一时刻处理多个任务的思想。
- 并发流程为:某个任务为了锁定某项资源,完成其任务,然后释放资源锁,使其他任务可以使用这项资源。