当前课程知识点:Java程序设计 >  第三章 类的重用 >  3.0-导学 >  3.0-导学

返回《Java程序设计》慕课在线视频课程列表

3.0-导学在线视频

3.0-导学

下一节:3.1.1-3.1.2-类继承的概念和语法

返回《Java程序设计》慕课在线视频列表

3.0-导学课程教案、知识点、字幕

大家好欢迎继续学习

JAVA语言程序设计

这一章我们来学习类的重用

首先我给大家简要介绍一下

在这一章都有哪些内容

在这一章我们将要学习

类的继承的概念和语法

还有我们来了解一下

JAVA里面在继承层次

最顶层的那个类

叫做Object类

为什么它有个Object类

Object类里边都有些什么东西

然后我们来学习一下

关于终结类和终结方法

如果说我们出于类设计的目的

有一些方法暂时不能够实现

我们就可以把这样的类

设计成抽象类

还有这章还要给大家介绍泛型

以及类的组合

类的组合是与类的继承不同的

另外一种的类的重用方式

现在我就把这几方面内容

先简单的给大家做一个介绍

我们知道如果你做

软件开发的时候

或者你做任何其它事情的时候

在现有的一定基础之上

去创造新的内容

那么就会比较容易一些

效率也会高一些

那么类的继承

就是在面向对象程序设计中

干这样事情的这么一种机制

也就是说我们可以在

已有类的基础之上

去设计一个新的类

把现有的某个类它的属性行为

全部都继承过来

然后在这个基础之上

可以进行改造

也可以扩展出新的属性和行为

这就是类的继承

在JAVA的类的继承体系中

最顶上的那个类

叫做Object类

在此之前我们看了很多例题

同学们也做了很多习题

我们也还没有学类的继承

所以大家就写一个单一的类

是不是认为

你这样的单一写出来的类

就没有继承谁呢

其实不是的

有这么一个类

它的名字Object

它是JAVA里面的

所有类的直接或间接的超类

也就是说每个JAVA类

都直接或间接的继承了Object

如果你声明一个类没有显示的

直接继承任何一个其它的类的话

那么这个类

就隐含的继承了Object

如果你的类继承了其它的超类

那么超类也许还有超类

到最顶上的一个超类

它就是隐含的继承了Object

所以Object类

是所有JAVA类的

直接或间接的超类

或者叫(父类)或者叫(基类)

那这样的话

在Object类里面

就定义了一些

非常有用的功能和属性

而其它的所有的JAVA类

就都继承过来了

当然了继承过来

不一定你就觉得好用

那在这一讲我会给大家介绍

如果你觉得继承过来的

哪些功能不好用

那我们还可以修改

我们了解了类的继承之后

就要知道并不是所有的类

都欢迎别人去继承的

有些类就不允许继承

有些方法就不允许你去修改它

那么这样的类

我们叫做终结类

终结类你只能拿来直接用就好

你可以构造它的对象

可以使用它里面定义的功能

但是你不能说我继承这个类

为什么呢

一会儿我就要详细给大家讲

继承是什么

因为你继承过来以后

就意味着你可以修改

还可以在这个基础上去扩展

那么终结类是只许你原样照用

不许修改 不许扩展的

终结方法是什么呢

终结方法就是这个方法设计好了

比如说它认为涉及到安全的原因

或者涉及到这个算法的效率

或者是等等的原因

不希望这个方法再被修改

希望你就直接用

那么这个方法的设计者

就可以把方法设计为终结方法

那你就不能去覆盖它了

关于继承 关于方法的覆盖

都会在这章给大家介绍

有了类的继承机制

我们就有机会

在比较顶层的

上面的这个超类里面

去规定以后的子子孙孙

整个类家族的各级子类

他们都应该具有什么样的属性

具有什么样的行为

在最顶层给它统一规定了

这样的话这个类家族

就会有相对比较统一的

这样的对外的服务接口

和它的基本属性

这个在一些处理的时候

就会比较方便

尤其当我们使用

它们多态性特征的时候

下一讲讲多态性

那么这个时候就有一个问题

有些功能我们是希望

这个类家族里面的所有类都有

但是每个类的具体实现方法

它必须是不一样的

找不到一个

或者说不存在一个有意义的

最顶层的通用方法

必须是每个类

自己去具体实现

那么这个时候怎么办呢

这个时候就变成了

我们在比较顶层的

这个超类里面设计了一些

必须所有的子类都有的

共同的行为

但是在这个顶层超类中

我没办法规定一个

特别通用的算法

或者说通用的这个程序模块

去适应所有的子类

所以也就是说在超类中

你只可以设计

我希望有这项行为

但是行为怎么实现呢

因为其它的信息不够具体

你没法实现

那么这个时候

可以只定义方法的原型

声明一个方法的原型

并且加一个abstract关键字

来描述这个方法

来修饰这个方法

这就成了一个

只有原型没有方法体的方法

它就是一个抽象方法

抽象方法它只能放在抽象类里面

也就是说一个类

如果说它有些方法还无法实现

只有原型

那么我们就得把这个类

都定义成抽象类

抽象类就只能用来

作为超类来用

因为它自己还不完整

还有未实现的东西

所以它是不能够去生成

实例对象的

那么这一章也会给大家详细介绍

怎么样声明一个

抽象类里面的抽象方法

我们会看到抽象类

和抽象方法它的作用

在前面的学习中我们看到

数据是可以作为参数的

比如说我们在方法之间

传递数据的时候

我们会把数据放在

参数表中作为参数

其实在JAVA里面

可以作为参数的

不仅仅是数据

还有什么 还有类型

类型也可以作为参数

设想一下

如果我们设计了一个

比较经典的算法

比如说像排序算法这样的

那么我们当然希望

它可以适用于各种数据类型

我们总不能为了每一种类型

去写一个排序算法

或者我们做了一个集合类型

类似于数组这样的

一个集合类型的对象

那么我们希望什么呢

希望这种集合类型

最好它可以用来生成

不同的集合对象

容纳不同类型元素的集合对象

不然的话你为整数生成

定义一种集合类型

又为浮点数定义一种集合类型

然后为其它的什么

学生对象 教师对象

你都定义各种集合类型

那么这个负担是很重的

泛型是起什么作用的呢

泛型程序设计方法

允许我们把类型也作为参数

也就是说当你定义一种

数据结构的时候

当你定义一种算法的时候

你可以把这种结构中容纳的

具体数据类型抽象化

把算法处理的具体数据

它的类型抽象化

然后等我们需要使用

这个算法的时候

等我们需要使用

这种容器类型

或者叫集合类型的时候

我们每次使用的时候

现指定这次用它

容纳什么类型的数据

这次用它处理什么类型的数据

这种机制就叫做泛型机制

这一章我们也简单的给大家

把JAVA的泛型

做个基本的介绍

另外类的组合

是另外一种类的重用机制

组合的基本思想是什么呢

它就是一种部件组装的思想

可以说在制造业

部件组装已经是一种

很普遍的生产方式了

那么写程序

是不是也可以部件组装呢

也可以

我们可以在设计一个新类的时候

用已有类的对象

作为新类的成员

这样的话就是一种组装了

就是一种组合类了

组合类它是由

其它类的部件组成的

这种组合机制

跟类的继承机制一样

都是类的重用的机制

但是它们也有不同点

不同点在什么地方呢

应该说继承它是一种隶属关系

是一个 是一种这种关系

而组合是有一个这样的关系

我整体类中有哪些部件

我就把它作为组合的形式

放在里面

我子类属于上层概念的

一个特殊情况

它是隶属关系

那么就把它作为超类子类的

这种继承关系来设计

他们都是类的重用的机制

好 这就是我们第三章

要学习的内容

刚才我给大家做了一个

简要的介绍

希望大家接下来

跟着我一节一节的具体来学习

Java程序设计课程列表:

第一章 Java语言基础知识

-1.0-导学

--1.0-导学

--JDK的安装与配置01

--JDK的安装与配置02

--JDK的安装与配置03

--编辑并执行第一个java程序01

--编辑并执行第一个java程序02

--编辑并执行第一个java程序03

--eclipse的安装和配置01

--eclipse的安装和配置02

--eclipse的安装和配置03

--使用eclipse进行Java的开发01

--使用eclipse进行Java的开发02

--使用eclipse进行Java的开发03

-1.1-Java与面向对象程序设计简介

--1.1.1 Java与面向对象程序设计简介

--第一章 Java语言基础知识--1.1-Java与面向对象程序设计简介

-1.2-基本数据类型与表达式

--1.2.1-基本数据类型与表达式

-第一章 Java语言基础知识--1.2-基本数据类型与表达式

-1.3-数组

--1.3.1-数组

-第一章 Java语言基础知识--1.3-数组

-1.4-算法的流程控制

--1.4.1-算法的流程控制

--第一章 Java语言基础知识--1.4-算法的流程控制

-1.5-第一章小结

--1.5.1-第一章小结

-第一章编程练习题

-课件

--外部链接

第一章续-习题讲解视频

-Java环境配置、Eclipse使用、Helloworld程序详解

--JAVA的安装和配置

--编写并执行第一个Java程序及Java的跨平台性

--eclipse的安装和配置

--使用eclipse建立Java项目、编写和运行Java程序

--Java注释和Eclipse中的注释操作

--详解HelloWorld程序

-Java数据类型

--Java数据类型介绍

--Java整数类型

--Java浮点类型

--Java字符类型和布尔类型

--数据类型实战

--数据类型转换

--Java强制类型转换精度损失示例与表达式中的数据类型转换

-Java数组

--Java数组介绍、声明与使用

--一维数组的初始化与length属性

--数组索引的原理与使用

--二维数组的介绍与使用

-Java变量

--Java的变量

-命令行参数

--命令行参数的介绍

第二章 类与对象

-2.0-导学

--2.0-导学

-2.1-面向对象方法的特性

--2.1-面向对象方法的特性

--第二章 类与对象--2.1-面向对象方法的特性

-2.2-1-类声明与对象创建

--2.2-1-类声明与对象创建

--第二章 类与对象--2.2-1-类声明与对象创建

-2.2-2-数据成员

--2.2-2-数据成员

--第二章 类与对象--2.2-2-数据成员

-2.2-3-方法成员

--2.2-3-方法成员

--第二章 类与对象--2.2-3-方法成员

-2.2-4-包

--2.2-4-包

--第二章 类与对象--2.2-4-包

-2.2-5-类的访问权限控制

--2.2-5-类的访问权限控制

--第二章 类与对象--2.2-5-类的访问权限控制

-2.3-1-对象初始化

--2.3-1-对象初始化

--第二章 类与对象--2.3-1-对象初始化

-2.3-2-内存回收

--2.3-2-内存回收

--第二章 类与对象--2.3-2-内存回收

-2.4-枚举类

--2.4-枚举类

--第二章 类与对象--2.4-枚举类

-2.5-应用举例

--2.5-应用举例

-2.6-第2章小结

--2.6-第2章小结

-第二章编程练习题

-课件

--第二章课件

第三章 类的重用

-3.0-导学

--3.0-导学

-3.1.1-3.1.2-类继承的概念和语法

--3.1.1-3.1.2-类继承的概念和语法

--第三章 类的重用--3.1.1-3.1.2-类继承的概念和语法

-3.1.3-隐藏和覆盖

--3.1.3-隐藏和覆盖

--第三章 类的重用--3.1.3-隐藏和覆盖

-3.2-Object 类

--3.2-Object 类

--第三章 类的重用--3.2-Object 类

-3.3-终结类与终结方法

--3.3-终结类与终结方法

--第三章 类的重用--3.3-终结类与终结方法

-3.4-抽象类

--3.4-抽象类

--第三章 类的重用--3.4-抽象类

-3.5-泛型

--3.5-泛型

--第三章 类的重用--3.5-泛型

-3.6-类的组合

--3.6-类的组合

-3.7-小结

--3.7-小结

-第三章编程练习题

-课件

--课件

第四章 接口与多态

-4.0-导学

--导学

-4.1-接口

--接口

--第四章 接口与多态--4.1-接口

-4.2.1-4.2.2-类型转换

--类型转换

--第四章 接口与多态--4.2.1-4.2.2-类型转换

-4.2.3-方法的查找

--方法的查找

--第四章 接口与多态--4.2.3-方法的查找

-4.3-多态的概念

--多态的概念

--第四章 接口与多态--4.3-多态的概念

-4.4-多态的应用举例

--多态的应用举例

--第四章 接口与多态--4.4-多态的应用举例

-4.5-构造方法与多态性

--构造方法和多态性

--第四章 接口与多态--4.5-构造方法与多态性

-4.6-本章小结

--本章小结

-第四章编程作业

-课件

--课件

第五章 输入输出

-5.0-导学

--5.0-导学

-5.1.1-5.1.2-异常处理的概念

--5.1.1-5.1.2-异常处理的概念

--第五章 输入输出--5.1.1-5.1.2-异常处理的概念

-5.1.3-5.1.5-异常的处理

--5.1.3-5.1.5-异常的处理

--第五章 输入输出--5.1.3-5.1.5-异常的处理

-5.2-输入输出流的概念

--输入输出流的概念

--第五章 输入输出--5.2-输入输出流的概念

-5.3.1-写文本文件

--写文本文件

--第五章 输入输出--5.3.1-写文本文件

-5.3.2-读文本文件

--读文本文件

--第五章 输入输出--5.3.2-读文本文件

-5.3.3-写二进制文件

--写二进制文件

--第五章 输入输出--5.3.3-写二进制文件

-5.3.4-读二进制文件

--读二进制文件

-5.3.5-File类

--File类

-5.3.6-处理压缩文件

--处理压缩文件

-5.3.7-对象序列化

--对象序列化

-5.3.8-随机文件读写

--随机文件读写

-5.4-本章小结

--本章小结

-课件

--课件

第六章 对象群体的组织

-6.0-导学

--导学

-6.1-Java集合框架介绍

--Java集合框架介绍

--第六章 对象群体的组织--6.1-Java集合框架介绍

-6.2-主要接口及常用的实现类

--6.2-主要接口及常用的实现类

--第六章 对象群体的组织--6.2-主要接口及常用的实现类

-6.3-常用算法

--常用算法

-6.4-数组实用方法

--6.4-数组实用方法

-6.5-基于动态数组的类型(Vector, ArrayList)

--基于动态数组的类型(Vector, ArrayList)

-6.6-遍历Collection

--遍历Collection

-6.7-Map接口及其实现

--Map接口及其实现

-6.8-第6章小结

--第6章小结

-课件

--课件

第七章 图形用户界面

-7.0-导学

--导学

-7.1-绘图

--绘图

-7.2-Swing基础

--Swing基础

-7.3-Swing的层次

--Swing的层次

-7.4-布局管理

--布局管理

-7.5-内部类

--内部类

-7.6-事件处理的基本概念

--事件处理的基本概念

-7.7-事件派发机制

--事件派发机制

-7.8-顶层容器

--7.8-顶层容器

-7.9-中间层容器(一)

--7.9-中间层容器(一)

-7.10-中间层容器(二)

--7.10-中间层容器(二)

-7.11-原子组件(一)

--7.11-原子组件(一)

-7.12-原子组件(二)

--7.12-原子组件(二)

-7.13-原子组件(三)

--7.13-原子组件(三)

-7.14-其它Swing特性

--7.14-其它Swing特性

-7.15-第7章小结

--7.15-第7章小结

-课件

--课件

3.0-导学笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。