2012-05-03
158-163/913
Java编程思想第四版——第二十天
第7章 复用类
复用代码是java众多引人注目的功能之一。
Java中所有事物,问题解决都是围绕着类展开的。可以通过创建新类来服用代码,而不必再重头开始编写,可以使用别人业已开发并调试好的类。此方法的窍门在于使用类而不破坏现有程序代码。两种达到此目的的方法:第一种:只需在新的类中产生现有类的对象,称为组合。复用了现有程序代码的功能,而非它的形式。第二种:按照现有类的类型来创建新类,无需改变现有类的形式,采用现有类的形式并在其中添加新代码,称为继承。编译器可以完成其中大部分工作。继承是面向对象程序设计的基石之一。
组合和继承,语法和行为大多是相似的。
7.1 组合语法
组合技术,只需将对象引用置于新类中即可。
每一个非基本类型的对象都有一个toString()方法
编译器不是简单的为每一个引用都创建默认对象。
初始化引用:
1. 在定义对象的地方,这意味着他们总是能够在构造器被调用之前被初始化。
2. 在类的构造器中。
3. 就在正要使用这些对象之前,这种方式称为惰性初始化。在生成对象不值得及不必每次都生成对象的情况下,这种方式可以减少额外的负担。
4. 使用实例初始化。
7.2 继承语法
继承是所有OOP语言和java语言不可缺少的组成部分。创建一个类时,总是在继承,除非已明确指出要从其他类中继承,否则就是在隐式地从java的标准根类Object进行继承。
组合的语法比较平实,但是继承使用的是一种特殊的语法。继承过程中,需要先声明“新类与旧类相似”。这种声明是通过在类主体的左边花括号之前,书写后面紧随基类名称的关键字extends而实现的。这么做时,自动得到基类中所有的域和方法。
可以为每个类都创建一个main()方法,使每个类的单元测试都变得简便易行。完成单元测试之后,无需删除,可以留待下次测试。即使一个程序含有多个类,只有命令行所调用的那个类的main()方法会被调用,不管含有main()方法的类是不是public的。一个类只具有包访问权限,其public main()仍然是可访问的。
为了继承,一般的规则是将所有的数据成员都指定为private,将所有的方法指定为public(protected成员也可以借助导出类来访问)。但在特殊情况下,必须做出调整。
可用将继承视作是对类的复用。
Java用super关键字表示超类的意思,当前类就是从超类继承来的。
在继承的过程中,并不一定非得使用基类的方法,也可以在导出类中添加新方法,其添加方式与在类中添加任意方法一样,即对其加以定义即可。
7.2.1 初始化基类
当创建了一个导出类的对象时,该对象包含了一个基类的子对象。这个子对象与用基类直接创建的对象是一样的。二者区别在于,后者来自于外部,而基类的子对象被包装在导出类对象内部。
对基类子对象的正确初始化是至关重要的,仅有一种方法来保证这一点:在构造器中调用基类构造器来执行初始化,而基类构造器具有执行基类初始化所需要的所有知识和能力。Java会自动在导出类的构造器中插入对基类构造器的调用。
构建过程是从基类“向外”扩散的,所以基类在导出类构造器可以访问它之前,就已经完成了初始化。即使不创建构造器,编译器也会合成一个默认的构造器,该构造器将调用基类的构造器。
带参数的构造器:
如果没有默认的基类构造器,或者想调用一个带参数的基类构造器,就必须用关键字super显式地编写调用基类构造器的语句,并且配以适当的参数列表。调用基类构造器必须是在导出类构造器中药做的第一件事(如果错了,编译器会提醒)。
158-163/913
Java编程思想第四版——第二十天
第7章 复用类
复用代码是java众多引人注目的功能之一。
Java中所有事物,问题解决都是围绕着类展开的。可以通过创建新类来服用代码,而不必再重头开始编写,可以使用别人业已开发并调试好的类。此方法的窍门在于使用类而不破坏现有程序代码。两种达到此目的的方法:第一种:只需在新的类中产生现有类的对象,称为组合。复用了现有程序代码的功能,而非它的形式。第二种:按照现有类的类型来创建新类,无需改变现有类的形式,采用现有类的形式并在其中添加新代码,称为继承。编译器可以完成其中大部分工作。继承是面向对象程序设计的基石之一。
组合和继承,语法和行为大多是相似的。
7.1 组合语法
组合技术,只需将对象引用置于新类中即可。
每一个非基本类型的对象都有一个toString()方法
编译器不是简单的为每一个引用都创建默认对象。
初始化引用:
1. 在定义对象的地方,这意味着他们总是能够在构造器被调用之前被初始化。
2. 在类的构造器中。
3. 就在正要使用这些对象之前,这种方式称为惰性初始化。在生成对象不值得及不必每次都生成对象的情况下,这种方式可以减少额外的负担。
4. 使用实例初始化。
7.2 继承语法
继承是所有OOP语言和java语言不可缺少的组成部分。创建一个类时,总是在继承,除非已明确指出要从其他类中继承,否则就是在隐式地从java的标准根类Object进行继承。
组合的语法比较平实,但是继承使用的是一种特殊的语法。继承过程中,需要先声明“新类与旧类相似”。这种声明是通过在类主体的左边花括号之前,书写后面紧随基类名称的关键字extends而实现的。这么做时,自动得到基类中所有的域和方法。
可以为每个类都创建一个main()方法,使每个类的单元测试都变得简便易行。完成单元测试之后,无需删除,可以留待下次测试。即使一个程序含有多个类,只有命令行所调用的那个类的main()方法会被调用,不管含有main()方法的类是不是public的。一个类只具有包访问权限,其public main()仍然是可访问的。
为了继承,一般的规则是将所有的数据成员都指定为private,将所有的方法指定为public(protected成员也可以借助导出类来访问)。但在特殊情况下,必须做出调整。
可用将继承视作是对类的复用。
Java用super关键字表示超类的意思,当前类就是从超类继承来的。
在继承的过程中,并不一定非得使用基类的方法,也可以在导出类中添加新方法,其添加方式与在类中添加任意方法一样,即对其加以定义即可。
7.2.1 初始化基类
当创建了一个导出类的对象时,该对象包含了一个基类的子对象。这个子对象与用基类直接创建的对象是一样的。二者区别在于,后者来自于外部,而基类的子对象被包装在导出类对象内部。
对基类子对象的正确初始化是至关重要的,仅有一种方法来保证这一点:在构造器中调用基类构造器来执行初始化,而基类构造器具有执行基类初始化所需要的所有知识和能力。Java会自动在导出类的构造器中插入对基类构造器的调用。
构建过程是从基类“向外”扩散的,所以基类在导出类构造器可以访问它之前,就已经完成了初始化。即使不创建构造器,编译器也会合成一个默认的构造器,该构造器将调用基类的构造器。
带参数的构造器:
如果没有默认的基类构造器,或者想调用一个带参数的基类构造器,就必须用关键字super显式地编写调用基类构造器的语句,并且配以适当的参数列表。调用基类构造器必须是在导出类构造器中药做的第一件事(如果错了,编译器会提醒)。
发表评论
-
Java编程思想第四版——第二十一天
2012-05-04 12:56 5762012-05-04 163-170/913 Java编 ... -
Java编程思想第四版——第十九天
2012-05-02 11:08 8152012-05-02 149-158/913 Java编程思 ... -
Java编程思想第四版——第十八天
2012-04-27 13:12 10012012-04-27 142-149/913 Java编 ... -
Java编程思想第四版——第十七天
2012-04-25 11:18 7412012-04-25 138-142/913 Java编程思 ... -
Java编程思想第四版——第十六天
2012-04-24 13:50 7492012-04-24 131-138/913 Java编 ... -
Java编程思想第四版——第十五天
2012-04-23 17:14 7532012-04-23 121-131/913 Java编程思 ... -
Java编程思想第四版——第十四天
2012-04-19 11:28 6232012-04-19 118-121/913 Java编程思 ... -
Java编程思想第四版——第十三天
2012-04-18 12:08 6652012-04-18 108-118/913 Java编 ... -
Java编程思想第四版——第十二天
2012-04-09 10:58 7332012-04-09 102-108/913 Java编 ... -
Java编程思想第四版——第十一天
2012-04-05 12:21 8182012-04-05 Java编程思想第四版——第十一天 ... -
Java编程思想第四版——第十天
2012-03-31 12:03 5582012-03-31 97-102/913 Java编程思想 ... -
Java编程思想第四版——第九天
2012-03-30 14:59 6512012-03-30 80-97/913 Java编程思想第 ... -
Java编程思想第四版——第八天
2012-03-29 12:09 4822012-03-29 76-80/913 3.6 自动递增和 ... -
Java编程思想第四版——第七天
2012-03-28 12:24 6562012-03-28 70-76/913 昨天找 ... -
Java编程思想第四版——第六天
2012-03-27 13:02 5272012-03-27 66-70/913 最近两 ... -
Java编程思想第四版——第五天
2012-03-23 15:09 9422012-03-23 60-66/913 2.5 方法、参数 ... -
Java编程思想第四版——第四天
2012-03-22 12:41 5882012-03-22 54-60/913 第二章 ... -
Java编程思想第四版——第三天
2012-03-21 12:40 5682012-03-21 47-54/913 1.12 并 ... -
Java编程思想第四版——第二天
2012-03-20 13:54 728今天本来以为进度可以 ... -
Java编程思想第四版——第一天
2012-03-19 15:57 784Java已经丢手一年了 ...
相关推荐
这本书作为《数据结构与算法分析》第二版的配套解决方案手册,由Addison-Wesley出版社出版。主要针对使用Java编程语言的学生和专业人士。书中包含了大量课后习题的答案,旨在帮助读者深入理解数据结构与算法的概念,...
提高部分从第十一章至第十六章,重点关注Java语言在实际编程中的高级应用,旨在帮助读者掌握更复杂的编程技巧,以便进行大型Java应用程序的开发。这部分包括: 1. **对象容器类**:第十一章讲解了如何使用Java提供...
### 第十五届蓝桥杯Java A组参赛总结 #### 知识点一:比赛规则与流程 - **考试流程**:参赛者需首先下载题目,使用官方提供的解压密码解压试题包。整个考试时长为4小时。 - **提交方式**: - 在考试过程中,参赛...
1. **第二章——JNI简介**:这一章节通过一个简单的示例介绍了JNI的基本概念,适合对JNI尚不熟悉的初学者。 2. **第三章至第十章——JNI特性详解**:这些章节系统地介绍了JNI的各个方面,包括但不限于类型转换、...
本书在第二章详细讲解了数组的基本操作,如创建、遍历、插入、删除等,并通过Java代码示例展示了数组的应用场景。 2. **简单排序算法**:第三章介绍了几种简单的排序算法,如冒泡排序、选择排序、插入排序等。这些...
#### Java实验指导书第二版——实验知识点解析 **一、面向对象程序设计基础** 面向对象程序设计(Object-Oriented Programming, OOP)是一种程序设计思想,它强调将数据和处理数据的方法定义为相互独立、尽可能不...
根据提供的文件信息,我们可以归纳出该书《数据结构与算法分析_java语言描述》的主要知识点及其相关内容。本书由Mark Allen Weiss撰写,是计算机科学领域内学习数据结构与算法的经典教材之一。接下来,我们将按照各...
C 语言的诞生及其影响 C 语言是一种高级计算机编程语言,其...4. 影响了其他编程语言的设计:C 语言的设计思想和语法特点对其他编程语言的设计产生了影响,如 C++、Java、Python 等编程语言都受到了 C 语言的影响。
阅读本书唯一的前提条件,是具备对Java编程或类似面向对象语言(比如说C#)的基本理解,不需要拥有为移动设备开发软件的经验。实际上,如果你确实有这方面的经验,反倒应该忘记它们。Android是如此与众不同,因此...
5.8 版本 6:第四次优化:缓存(Caching) 5.9 从故事中学到的 第6章 集成测试框架:脆弱之美 6.1. 三个类搞定一个验收测试框架 6.2. 框架设计的挑战 6.3. 开放式框架 6.4. 一个HTML解析器可以简单到什么程度? 6.5. ...
第二章 运行环境 全面了解.NET.12 2.1 .NET 结构.12 2.2 公用语言运行时环境与公用语言规范.13 2.3 开 发 工 具 .17 2.4 小 结 .19 第三章 编写第一个应用程序 .20 3.1 Welcome 程序 .20 3.2 代 码 分 ...
**第二天:查询——SELECT语句的使用** - **一般的语法规则**:讲解了SELECT语句的基本语法,包括如何选择特定字段、过滤数据等。 - **你的第一个查询**:通过实例演示了如何编写简单的SELECT语句来检索数据。 - **...
#### 二十四、宏函数 - **宏函数定义**:介绍宏函数的概念及其与普通函数的区别。 - **宏函数应用**:探讨宏函数在实际开发中的具体应用场景。 #### 二十五、条件编译【掌握实际应用场景】 - **条件编译**:解释...
##### 第二章:运行环境 - **2.1 .NET结构** .NET框架的核心组成部分包括: - 公共语言运行时(CLR):负责内存管理、垃圾回收、异常处理等。 - 框架类库(FCL):包含了大量的类库,涵盖了从网络通信到图形...
- C#结合了C++的强大功能和Java的简洁性,旨在提供一个更安全、更易于使用的编程环境。 - 在.NET框架中,C#是首选的开发语言之一,它支持跨平台应用开发,并且具有丰富的类库支持。 - **1.3 C#语言的特点** - ...