当前课程知识点:Java程序设计 > 第二章 类与对象 > 2.1-面向对象方法的特性 > 2.1-面向对象方法的特性
大家好
欢迎回来继续学习
java语言程序设计
这一节我们来学习
面向对象方法的特征
那么面向对象方法的
四个基本特征呢
是抽象 封装 继承和多态
所谓抽象呢
就是忽略问题中
与当前目标无关的那些因素
而只关注与当前目标有关的内容
这就是抽象
现在我们看一个例子
比如说我们要抽象出
一个钟表类
他能够表示最基本的钟表的功能
虽然钟表有各种各样
有墙上的挂钟
有小闹钟
有建筑物顶上
那个整点会唱歌的大钟
但是他们与计时相关的
最基本的属性是什么
也就是数据是什么
要有小时 分秒
这三个整数
能存放时间
还要有什么行为呢
要有设置时间 显示时间
这样的行为
那我们就在程序中
可以抽象出来
用三个整数来表示小时 分秒
用两个方法
一个set time
一个show time
来表示呢钟表的行为或者功能
那么封装是什么呢
封装实际上
是一种信息隐蔽的技术
那么为什么我们要隐蔽
要隐藏一些信息呢
目的是什么呢
封装呢就是
我们要用一种抽象数据类型
将数据
核对数据的操作封在一起
那么经过这样封装以后
用户所谓用户
就是这个类的对象的使用者
就只能看到对象的封装界面信息
对于对象的内部细节呢
就都屏蔽起来了
这样的目的就在于
将对象的使用者和设计者分开
使用者呢就不需要知道
这些行为的实现细节
就不需要知道
这些数据的存储细节
继承呢是一种基于已有的类
去产生新类的这个机制
继承是个好东西
比如说我们说继承传统的文化
继承祖上的遗产
这大家都很愿意继承的
为什么呢
因为你有了继承
在继承的基础上
再发展就会更容易
写程序也是一样
如果说你可以继承
现有的程序
在这个基础之上
你再去开发你的新程序
那么这个程序的开发效率就会高
工作量也会小
而且呢开发出来的程序
他的稳定性 可靠性都会更好
整个继承过程呢
就是指新的类
可以获得已有类
也成为超类 基类或者父类
可以获得已有类的属性和行为
那么这个时候
我们称这个新类是已有类的子类
也成派生类
在java中呢
更多的是用超类和子类
这样的术语
在继承的过程中呢
子类继承了超类的特性
包括方法
也包括呢他的数据成员
子类呢他也可以修改继承的方法
或者呢增加新的方法
这样一种机制呢
有助于解决软件的可重用性问题
使得程序的结构清晰
也减少了编码和维护的工作量
继承呢可以分成单继承和多继承
单继承指的是一个子类
他只能有一个直接的超类
而多继承呢
是指一个子类
可以有多个直接的超类
在java语言中呢
只支持单继承
这样呢他的语法会比较简单
多肽性
也是面向对象的一个基本的特征
他指的是在有继承的情况下
超类和他的子类的对象们
都可以相应同名的消息
但是这些对象
对这个同名的消息
他各自的实现方式
他相应消息的具体实现方式
可以是不一样的
那么这个呢
主要是通过子类
覆盖那些从超类继承过来的方法
用这样的方式
来实现多态
好 在这一节呢
我们学习了
面向对象方法的基本特征
通过这样一个简单介绍呢
大家对这些基本特征呢
只是说有了一个大概的
简单了解
肯定还有很多不解的地方
不理解的地方
没有关系
整个这门课后续的章节
都会逐渐为大家解开这些谜团
接下来下一节呢
我就要详细介绍
怎么样声明类
怎么样定义类的对象
-1.0-导学
--1.0-导学
-1.1-Java与面向对象程序设计简介
--第一章 Java语言基础知识--1.1-Java与面向对象程序设计简介
-1.2-基本数据类型与表达式
-第一章 Java语言基础知识--1.2-基本数据类型与表达式
-1.3-数组
--1.3.1-数组
-第一章 Java语言基础知识--1.3-数组
-1.4-算法的流程控制
--第一章 Java语言基础知识--1.4-算法的流程控制
-1.5-第一章小结
-第一章编程练习题
-课件
--外部链接
-Java环境配置、Eclipse使用、Helloworld程序详解
--使用eclipse建立Java项目、编写和运行Java程序
-Java数据类型
--Java整数类型
--Java浮点类型
--数据类型实战
--数据类型转换
--Java强制类型转换精度损失示例与表达式中的数据类型转换
-Java数组
-Java变量
--Java的变量
-命令行参数
--命令行参数的介绍
-2.0-导学
--2.0-导学
-2.1-面向对象方法的特性
--第二章 类与对象--2.1-面向对象方法的特性
-2.2-1-类声明与对象创建
--第二章 类与对象--2.2-1-类声明与对象创建
-2.2-2-数据成员
--第二章 类与对象--2.2-2-数据成员
-2.2-3-方法成员
--第二章 类与对象--2.2-3-方法成员
-2.2-4-包
--2.2-4-包
--第二章 类与对象--2.2-4-包
-2.2-5-类的访问权限控制
--第二章 类与对象--2.2-5-类的访问权限控制
-2.3-1-对象初始化
--第二章 类与对象--2.3-1-对象初始化
-2.3-2-内存回收
--第二章 类与对象--2.3-2-内存回收
-2.4-枚举类
--2.4-枚举类
--第二章 类与对象--2.4-枚举类
-2.5-应用举例
--2.5-应用举例
-2.6-第2章小结
-第二章编程练习题
-课件
--第二章课件
-3.0-导学
--3.0-导学
-3.1.1-3.1.2-类继承的概念和语法
--第三章 类的重用--3.1.1-3.1.2-类继承的概念和语法
-3.1.3-隐藏和覆盖
--第三章 类的重用--3.1.3-隐藏和覆盖
-3.2-Object 类
--第三章 类的重用--3.2-Object 类
-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.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集合框架介绍
--第六章 对象群体的组织--6.1-Java集合框架介绍
-6.2-主要接口及常用的实现类
--第六章 对象群体的组织--6.2-主要接口及常用的实现类
-6.3-常用算法
--常用算法
-6.4-数组实用方法
-6.5-基于动态数组的类型(Vector, ArrayList)
--基于动态数组的类型(Vector, ArrayList)
-6.6-遍历Collection
-6.7-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.10-中间层容器(二)
-7.11-原子组件(一)
-7.12-原子组件(二)
-7.13-原子组件(三)
-7.14-其它Swing特性
-7.15-第7章小结
-课件
--课件