程序设计就是对复杂度的管理
在头脑中创建一个模型,用于加强对Java的深入理解,如果你遇到疑问,你就的将它反馈给你的模型,并推断答案.
每个对象都有一个接口
尽管我们在面向对象程序设计中实际所做的创建新的数据类型,但实际上所有面向对象设计语言都是用Class关键词来表示数据类型.当你看到类型(Type)一次时,请将其作为类(Class)来考虑,反之亦然.
面对对象的方法并不是局限于构建仿真程序,任何程序都是你设计的系统的一个仿真的概念,面向对象技术确实可以将大量的问题讲解为一个简单的解决方案.
每个对象都提供服务
将对象作为服务提供者看待是一个伟大的简化工具,它不仅在设计过程中非常有用,而且当其他人试图理解你的代码或重用某个对象时,它会使将对象调整到适应其设计的过程变得简单的多.
被隐藏的具体实现
public表示紧随其后的元素对任何人都是可用的.
private表示除类型创建者和该类型的内部方法之外任何人都不能访问的元素.
protected与private差别在于继承类可以访问protected成员.
default可以访问同一个包中的其他成员.
继承:复用接口
通过继承而产生的类型等价是理解面向对象程序设计方法内涵的重要门槛.
- 是一个(is-a)与像一个(is-like-a)关系
is-a:完全相同的接口类型
is-like-a:添加新的接口元素
伴随多态的可互换对象
后期绑定
抽象:抽象方法只能在抽象类内部创建,当该类被继承时,抽象方法必须被实现,否则继承类依然是一个抽象类.创建抽象方法使得你可以将一个方法置于接口中而不必被迫为此方法提供可能毫无意义的方法体.
接口:提供了接口与实现的完美分离,可以将多个接口组合到一起
接口可以继承多个接口。
不允许类多重继承的主要原因是,如果A同时继承B和C,而b和c同时有一个D方法,A如何决定该继承那一个呢?
但接口不存在这样的问题,接口全都是抽象方法继承谁都无所谓,所以接口可以继承多个接口。
interface b{}
interface c{}
interface a extends b,c{}//对
class b{}
class c{}
class a extends b,c{}//错
类的继承和接口的实现,接口也是可以继承接口的。 .
对象的创建、使用和生命周期
C++对象的存储空间和生命周期可以在编写程序时确实.
Java动态创建对象.
C++必须通过编程方式来确定何时销毁对象.
Java自动发现对象何时不再使用.
- 集合(collection)与迭代器(iterator)
List(列表,用于储存序列)
arraylist:随机访问元素是一个花费固定时间的操作
linkedlist:随机选取元素需要在列表中移动,其代价是高昂的,访问越靠近表尾的元素,花费的时间越长.
另一方面,如果你想在序列中间插入一个元素,linkedlist却比arraylist要小.
在设计阶段,你可以使用linkedlist,在优化系统性能时,改用arraylist.基类List和迭代器所带来的抽象把你在容器之间转换时对代码产生的影响降到了最低.
Map(散列表,也被称为关联数组,用来建立对象之间的关联)
Set(集类,用于储存一类对象)
Queue(列队)、Tree(树)、Stack(堆栈)
-
单根继承结构
-
向下转型(downcasting)与模板/泛型(template/generic)
-
保证正确清楚
- 垃圾回收与效率和灵活性
异常处理:处理错误
并发
持久性
Java与Internet
Java为什么成功
-
系统易于表达、易于理解
-
通过类库得到最大支持
-
错误处理
Java与C++
总结
分享到:
相关推荐
西方经济学_微观部分_高鸿业_第四版_第1章引论--21.pptx
算法引论-一种创造性方法 完整书签pdf版
[精选]第一章引论ppt-第一章管理经济学概论.pptx
本章主要讨论的是操作系统的基本概念、目标、作用以及常见的系统结构设计。 首先,操作系统的两大主要目标是作为用户与计算机硬件之间的接口和有效地管理资源。用户接口使得非专业人员也能方便地使用复杂的计算机...
第1章操作系统引论-1; 对于操作系统有系统分析
第1讲-引论-走马观花看导论.pptx
算法引论--一种创造性方法,里面很多实用算法,和考试有关
信号与系统引论-课件-郑君里-第2章-连续时间系统的时域分析,希望对大家有帮助吧。。。。。。。。。
蒙特卡罗方法引,蒙特卡洛算法 蒙特卡罗方法引论--入门和深入分析
第一章 引论 第二章 作业管理 第三章 进程管理 第四章 存储管理 第一章 引论 第二章 作业管理 第三章 进程管理 第四章 存储管理 第一章 引论 第二章 作业管理 第三章 进程管理 第四章 存储管理 ……
色谱分析法引论-概述-课件.pptx
在第1章“操作系统引论”中,我们深入探讨了操作系统的基本概念、发展历程、类型以及其在计算机系统中的关键角色。 首先,操作系统在计算机硬件之上构建,作为硬件与软件之间的桥梁,它使得用户可以通过用户接口与...
### 编译原理第一章引论知识点详解 #### 一、编译器概念及工作原理 **1.1 编译器定义** - **定义**: 编译器是一种软件工具,其主要职责是将源代码(一种高级编程语言)转换为目标代码(通常是机器语言或另一种...
"二语习得引论读书笔记chapter.pdf" 概述:本文档是关于第二语言习得(SLA)引论的读书笔记,涵盖了SLA的基本概念、研究领域和主要理论视角。 一、概论 SLA(Second Language Acquisition)是指学习和习得第二...
王宪均的《数理逻辑引论》是一本系统介绍数理逻辑基础理论的经典著作。作为读者,我们可以通过这部作品来深入理解数理逻辑的各个方面,尤其是书中对独立性证明的论述。 数理逻辑是数学的一个分支,涉及形式语言、...
色谱分析法是一种广泛应用于化学、生物和医药领域的分离和鉴定技术,通过对混合物中不同组分在固定相和流动相之间分配差异进行分析。速率理论,也称为范第姆特方程,是由荷兰学者Van Deemter在1956年提出的,它解释...
这是一本很好的数值计算的资料,适合初学者^_^
方便性是操作系统另一个重要方面,它为用户提供了与计算机硬件交互的接口。在没有操作系统的情况下,用户需直接使用机器语言编写和执行程序,这极为困难。操作系统提供了用户友好的命令行界面、系统调用和图形用户...
### 贝叶斯网引论 #### 一、贝叶斯网络概述 贝叶斯网络(Bayesian Network),又称信念网络(Belief Network)、概率网络(Probabilistic Network)等,是一种用图形模型来表示变量间的条件独立性和概率依赖性的...