奥鹏易百

 找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

帮助中心知识拓展客服QQ 515224986
查看: 380|回复: 0

大工20秋《java程序设计》辅导资料七

[复制链接]

1万

主题

4

回帖

2万

积分

论坛元老

积分
28638
发表于 2021-3-7 14:59:14 | 显示全部楼层 |阅读模式
扫码加微信
Java程序设计辅导资料七主    题:第四章Java的接口、内部类和java.lang(课件)
学习时间:2020年11月9日—11月15日
“不忘初心、牢记使命”主题理论学习:
每周文摘:忠诚是共产党人必须具备的优秀品格。“忠诚印寸心,浩然充两间”的坚毅,“砍头不要紧,只要主义真”的无畏,腹中满是草根而宁死不屈的气节,食指钉入竹签而永不叛党的坚贞,无数先烈用鲜血诠释了对党的忠诚。对党忠诚必须是纯粹的、无条件的,是政治标准、更是实践标准,鲜明体现在坚决贯彻党中央决策部署上。
摘选自《在第十九届中央纪律检查委员会第二次全体会议上的讲话》
内    容:
我们这周主要学习《Java程序设计》这门课程的第4章关于Java接口以及内部类和内部接口等方面的介绍以及依次相关内容。希望通过下面的内容能使同学们对Java语言的新特性有进一步的了解。
知识要点:
接口的概念和特点
接口的类型
Java接口常用方法
内部类
java.lang包
重点难点:
Java接口常用方法
java.lang包
接口
在Java语言规范中,一个方法的特征仅包括方法的名字,参数的数目和种类,而不包括方法的返回类型,参数的名字以及所抛出来的异常。在Java编译器检查方法的重载时,会根据这些条件判断两个方法是否是重载方法。但在Java编译器检查方法的置换时,则会进一步检查两个方法(分处超类型和子类型)的返还类型和抛出的异常是否相同。
接口继承和实现继承的规则不同,一个类只有一个直接父类,但可以实现多个接口。
Java接口本身没有任何实现,因为Java接口不涉及表象,而只描述public行为,所以Java接口比Java抽象类更抽象化。
Java接口的方法只能是抽象的和公开的,Java接口不能有构造器,Java接口可以有public,静态的和final属性。
接口把方法的特征和方法的实现分割开来。这种分割体现在接口常常代表一个角色,它包装与该角色相关的操作和属性,而实现这个接口的类便是扮演这个角色的演员。一个角色由不同的演员来演,而不同的演员之间除了扮演一个共同的角色之外,并不要求其它的共同之处。
为什么要使用Java接口
两个类中的两个类似的功能,调用他们的类动态的决定一种实现,那他们提供一个抽象父类,子类分别实现父类所定义的方法。
问题的出现:Java是一种单继承的语言,一般情况下,哪个具体类可能已经有了一个超类,解决是给它的父类加父类,或者给它父类的父类加父类,直到移动到类等级结构的最顶端。这样一来,对一个具体类的可插入性的设计,就变成了对整个等级结构中所有类的修改。
接口是可插入性的保证
在一个等级结构中的任何一个类都可以实现一个接口,这个接口会影响到此类的所有子类,但不会影响到此类的任何超类。此类将不得不实现这个接口所规定的方法,而其子类可以从此类自动继承这些方法,当然也可以选择置换掉所有的这些方法,或者其中的某一些方法,这时候,这些子类具有了可插入性(并且可以用这个接口类型装载,传递实现了他的所有子类)。
我们关心的不是那一个具体的类,而是这个类是否实现了我们需要的接口。
接口提供了关联以及方法调用上的可插入性,软件系统的规模越大,生命周期越长,接口使得软件系统的灵活性和可扩展性,可插入性方面得到保证。
2、类型
使用Java接口将软件单位与内部和外部耦合起来。使用Java接口不是具体的类进行变量的类型声明,方法的返还类型声明,参量的类型声明,以及数据类型的转换。
在理想的情况下,一个具体的Java类应当只实现Java接口和抽象Java类中声明的方法,而不应当给多余方法。
3、类型等级结构
Java接口(以及抽象类)一般用来作为一个类型的等级结构的起点。
如果一个类已经有了一个主要的超类型,那么通过实现一个接口,这个类可以拥有另一个次要的超类型,这种次要的超类型叫做混合类型。
4、Java接口常用方法
单方法接口
public interface Actionlistener{
public abstract void actionPerformed(ActionEvent event);
}
仅且只有一个方法,只有实现了这个接口(重写这个接口中的唯一一个方法),你才有资格去事件监听器列表里注册(参数为Actionlistener类型),当事件源变动时,自动调用这个唯一的actionPerformed方法。
标识接口
是没有任何方法和属性的接口。标识接口不对实现它的类有任何语意上的要求,它仅仅表明了实现它的类属于一个特定的类型(传递)。
不推荐过多的使用标识接口。
常量接口
用Java接口来声明一些常量,然后由实现这个接口的类使用这些常量(以前在做画板的时候这么干过)。建议不要模仿这种常量接口的做法。内部类
内部类,计算机面向对象程序设计概念。向对象程序设计中,可以在一个类的内部定义另一个类,这种类称为嵌套类(nested classes),它有两种类型,即静态嵌套类和非静态嵌套类。静态嵌套类使用很少,最重要的是非静态嵌套类,也即是被称作为内部类(inner)。内部类是JAVA语言的主要附加部分。内部类几乎可以处于一个类内部任何位置,可以与实例变量处于同一级,或处于方法之内,甚至是一个表达式的一部分。
内部类是JAVA语言的主要附加部分。嵌套类从JDK1.1开始引入。其中inner类又可分为三种:
其一、在一个类(外部类)中直接定义的内部类;
其二、在一个方法(外部类的方法)中定义的内部类;
其三、匿名内部类。
表现形式
静态内部类
成员内部类
局部内部类
匿名内部类
优点
·内部类对象可以访问创建它的对象的实现,包括私有数据;
·内部类不为同一包的其他类所见,具有很好的封装性;
·使用内部类可以很方便的编写事件驱动程序;
·匿名内部类可以方便的定义运行时回调;
·内部类可以方便的定义java.lang包
提供利用Java编程语言进行程序设计的基础类。最重要的类是Object(它是类层次结构的根)和Class(它的实例表示正在运行的应用程序中的类)。
把基本类型的值当成一个对象来表示通常很有必要。包装器类 Boolean、Character、Integer、Long、Float 和 Double 就是用于这个目的。例如,一个 Double 类型的对象包含了一个类型为 double 的字段,这表示如果引用某个值,则可以将该值存储在引用类型的变量中。这些类还提供了大量用于转换基值的方法,并支持一些标准方法,比如 equals 和 hashCode。Void 类是一个非实例化的类,它保持一个对表示基本类型 void 的 Class 对象的引用。
类 Math 提供了常用的数学函数,比如正弦、余弦和平方根。类似地,类 String 和 StringBuffer 提供了常用的字符串操作。
类 ClassLoader、Process、Runtime、SecurityManager 和 System 提供了管理类的动态加载、外部进程创建、主机环境查询(比如时间)和安全策略实施等“系统操作”。
类 Throwable 包含了可能由 throw 语句抛出的对象(§14.16)。Throwable 的子类表示错误和异常。
字符编码
java.nio.charset.Charset 类的规范描述了字符编码的命名约定,以及每个 Java 平台实现必须支持的标准编码集。
表7-1 java.lang包中的类和接口
Object类
Java类层次的根,其它类的祖先类,提供类的基本方法

Math数学类
提供一组数学函数和常数

Cloneable可克隆接口
支持类的克隆,标记接口

Comparable可比较接口
约定对象比较大小的方法

基本数据类型包装类
8个基本数据类型的包装类:Byte、Short、Integer、Long、Float、Double、Character、Boolean

String字符串类
提供常量字符串操作方法

System和Runtime类
系统和运行时类,提供访问系统和运行环境资源

Class类操作类
提供类名、父类及类所在的包等信息

Error错误类和Exception异常类
Exception类处理异常,Error类处理错误

Thread线程类和Runnable接口
提供多线程环境的线程管理和操作类和接口


上面的表中是java.lang包中主要包含的类和接口,其中Object类是Java中其他所有类的父类。
例题
一、填空题
1、接口是一组()、常量和内嵌类型的集合。
2、类是Java的一种()。
二、判断题
1、一个接口可被多个类实现。()
2、一个类只能实现一个接口。()
三、简答题
1、简述接口和抽象类的区别。例题答案
一、填空题
抽象方法
引用数据类型
二、判断题
正确
错误
三、简答题
接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的。另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。还有,接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用。
本内容由易百教育整理发布
网址www.openhelp100.com
QQ 515224986
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|www.openhelp100.com ( 冀ICP备19026749号-1 )

GMT+8, 2024-7-1 23:19

Powered by openhelp100 X3.5

Copyright © 2001-2024 5u.studio.

快速回复 返回顶部 返回列表