Java面向对象程序设计第2版第6章_内部类与异常类
JavaScript程序设计(第2版)第6章01.事件的基本概念

浏览器对象
事件处理 JavaScript函数 作用在对象上的事件
用户与网页交互操作
图6-1 网页浏览器对象、事件及函数之间的关系
事件处理程序的调用
事件处理是对象化编程的一个很重要的环节,它可以使程序的逻辑结构更加清晰,使程序更具 有灵活性,提高了程序的开发效率。事件处理的过程分为3步:
l发生事件。
l启动事件处理程序。 l事件处理程序作出反应。其中,要使事件处理程序能够启动,必须通过指定的对象来调用相 应的事件,然后通过该事件调用事件处理程序。事件处理程序可以是任意JavaScript语句,但是我们 一般用特定的自定义函数(function)来对事件进行处理。
在使用事件处理程序对页面进行操作时,最主要的是如何通过对象的事件来指定事件处理程序, 其指定方式主要有3种方法:
JavaScript的相关事件
为了便于读者查找JavaScript中的所有事件,下面以表格的形式对各事件进行说明。 如表6-1所示。
表6-1
事件 鼠标键 onclick 盘事件 ondblclick onmousedown onmouseup onmouseover onmousemove onmouseout onkeypress onkeydown onkeyup 页面相 onabort 关事件 onbeforeunload onerror onload onresize onunload 单击鼠标时触发此事件 双击鼠标时触发此事件 按下鼠标时触发此事件 鼠标按下后松开鼠标时触发此事件 当鼠标移动到某对象范围的上方时触发此事件 鼠标移动时触发此事件 当鼠标离开某对象范围时触发此事件 当键盘上的某个按键被按下并且释放时触发此事件 当键盘上某个按键被按下时触发此事件 当键盘上某个按键被按下后松开时触发此事件 图片在下载时被用户中断时触发此事件 当前页面的内容将要被改变时触发此事件 出现错误时触发此事件 页面内容完成时触发此事件(也就是页面加载事件) 当浏览器的窗口大小被改变时触发此事件 当前页面将被改变时触发此事件
《Java程序设计》教学大纲

《Java程序设计》教学大纲1 课程的基本描述课程名称Java语言程序设计Java Program Language课程性质专业基础课适用专业计算机科学与技术、软件工程、网络工程等参考教材Java 程序设计教程(慕课版)(第 2 版).张仁伟.人民邮电出版社。
总学时60学时考核方式期末上机考试(开卷考试)+课程作业,其中期末考试占50%,课程作业占50%本课程讲解Java语言的基本词法、语法、常用基础类和面向对象技术,除此以外,还要讲授程序设计要求、技能、方法和技巧,讲授分析问题和解决问题的方法,讲授算法的基本概念与应用。
Java语言基本内容包括基本数据类型、语句、类与对象、子类与继承、接口与实现、内部类与异常类、常用实用类、输入输出流、Java多线程机制、Java网络编程、泛型与集合框架、组件及事件处理、JDBC数据库操作。
2 教学定位通过本课程的学习,使学生获得JA V A语言程序设计的基本概念、方法和技巧,掌握JA V A 语言的语法,运用JA V A语言编写并调试通过能解决一定规模实际问题的程序,使学生受到程序设计基本功的严格训练,培养学生良好的程序设计风格和严密的逻辑思维能力,提高分析问题解决问题以及实际动手能力,为后续课程的学习以及为今后设计开发各种软件打下良好的基础。
2.1 课程教学目标1.能运用Java语言的基本词法、语法和常用类库等面向对象知识分析计算机复杂工程问题;2.能运用Java面向对象原理,借助相应资源,分析影响问题求解因素,并获得结论;3.能运用Java语言完成计算机系统或软件模块的设计。
2.2 课程的主要特点Java语言程序设计是一门专业基础课程。
课程内容包括语言的基本语法(词法和语法)、面向对象技术和常用基础类。
学生首先要切实掌握语言的基本语法,只有掌握了基本语法才有可能灵活运用语言,是具备程序设计能力的基础;Java语言本身是面向对象的语言,学生应很好地掌握面向对象技术,以便于理解面向对象的设计方法,并能用面向对象技术分析、设计软件系统;通过语言的学习,能够理解算法的概念,并能使用基本的、常用的算法解决信息处理问题;在学习语言的过程中,培养学生的编程能力,以利于学生终身学习。
Java面向对象程序设计智慧树知到答案章节测试2023年

第一章测试1.下列选项中,可以正确配置classpath的命令是() A:set classpath=C:Files.0_15 B:classpath set : C:Files.0_15 C:classpath set =C:Files.0_15 D:set classpath : C:Files.0_15 答案:A2.在JDK安装目录下,用于存放可执行程序的文件夹是() A:bin B:db C:jreD:lib 答案:A3.下面关于Java程序的描述中,错误的是() A:不同操作系统上的Java虚拟机是相同的 B:Java程序运行时,必须经过编译和运行两个步骤。
C:.class 格式的文件是用来运行的 D:.java格式的源文件是用来编译的答案:A4.下列选项中,哪些选项用于构成JDK开发环境()。
A:Java运行工具B:Java编译工具 C:Java文档生成工具 D:Java打包工具答案:ABCD5.下列关于使用Javac命令编译后生成文件的说法中,正确的是() A:编译后生成文件的后缀名为.class B:编译后生成的文件可以在Java虚拟机中运行C:编译后生成的文件为二进制文件 D:编译后生成文件的后缀名为.java 答案:ABC6.下列目录中,哪些属于JDK安装后的子目录() A:jre目录 B:lib目录C:include目录 D:demo目录答案:ABC7.lib是library的缩写,用于存放Java类库或库文件。
( ) A:对 B:错答案:A8.如果classpath环境变量没有进行设置,Java虚拟机会自动将其设置为“.”,也就是当前目录。
( ) A:错 B:对答案:B9.在任意命令行窗口中执行javac命令,如果都能正常地显示帮助信息,说明系统path环境变量配置成功。
( ) A:对 B:错答案:A10.Eclipse只是一个框架和一组服务,所有功能都是将插件组件加入到Eclipse框架中来实现的。
Java程序设计案例教程(第二版)周怡、张英主编。第6章 习题答案

方法的覆盖:在子类中重定义父类的同名方法。方法覆盖表现为父类与子类之间的方法的多态性,其中形参表、返回值类型也必须相同,且子类方法不能有比父类方法更严格的访问权限。可以为编译时多态性或运行时多态性。
6.什么叫构造方法?构造方法的作用是什么?
答:构造方法是对象实例化时完成对象及其成员变量的初始化时所调用的一种特殊的方法。
}
}
//类Draw_Clean继承抽象类Draw_Eraser并覆盖抽象方法getEraser()
classDraw_CleanextendsDraw_Eraser
{
publicvoidgetEraser()
{
System.out.println("橡皮擦选项:选择橡皮擦>>>选中需要清除内容>>>确定");
运行时多态性:在编译时不能确定、只有在运行时才能确定执行多个同名方法的哪一个。
五、编程题
1.考虑设计一个绘图工具的面向对象描述,写出代码框架,充分应用抽象、多态等方法。
classDraw_Graph
{
doubleline;
doublecircle;
//定义构造方法
publicDraw_Graph()
* @return计算结果
*/
public Complex multiply(Complex complex){
double x = this.x * complex.x - this.y * complex.y;
double y = this.y * complex.x + this.x * complex.y;
return new Complex(x,y);
Java程序设计教程第6章6.2 类的方法

定义带参数的方法
public class ZhazhiJi {
public String zhazhi ( String fruit ) { String juice = fruit + "汁";
本章任务
4/61
会定义和使用类的无参方法 理解变量作用域 会添加JavaDoc注释 会定义带参方法 会使用带参方法 会创建包组织Java工程
本章目标
5/61
类的方法
按此按钮, 狮子开始跑
电动玩具狮子 属性:
颜色:黄色
问题
按此按钮, 狮子开始叫
行为: 跑 叫 抢球
写出狮子对象的“跑”方法、 “叫”方法、“抢 球”方法
public static void main(String[] args){
Student stu = new Student(); name = "神仙姐姐";
stu.sex
sex = 'F'; age = 18;
stu.age
stu.show();
}
}
3/61
实现计算平均分和课程总成绩 实现MyShopping系统菜单切换 实现MyShopping系统入口程序 实现客户信息的添加和显示 修改客户姓名 对客户姓名排序 实现模拟账户存取款功能
语法
对象名.方法名();
问题
小明过生日,爸爸送他一个电动狮子玩具,编程 测试这个狮子能否正常工作
10/61
方法调用
public class AutoLion {
String color = "黄色"; //颜色
/*跑*/ public void run(){
实验题目

实验一 Java语言概述【实验目的】1.掌握开发Java应用程序的三个步骤:编写源文件、编译源文件和运行应用程序。
2.熟悉Java应用程序的基本结构,并能联合编译应用程序所需要的类。
文件保存要求:在D:盘新建文件夹“学号”,在“D:\ 学号”下新建文件夹“timu1”。
题目1的文件保存在“timu1”中,以下依次类推。
【题目1】1、实验要求:编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,很高兴学习Java”和“We are students”。
2、程序模板:请按模板要求,将【代码】替换为Java程序代码。
3、实验后的练习a.编译器怎样提示丢失大括号的错误。
b.编译器怎样提示语句丢失分号的错误。
c.编译器怎样提示将System写成system这一错误。
d.编译器怎样提示将String写成string这一错误。
【题目2】1、实验要求:编写3个源文件:、、,每个源文件只有一个类。
含有应用程序的主类(含有main方法),并使用了Teacher和Student类。
将3个源文件保存到同一目录,D:\timu2,然后编译。
2、程序模板:请按模板要求,将【代码】替换为Java程序代码。
3、实验后的练习a.将编译通过后,不断地修改源文件中的【代码2】。
比如,在命令行窗口输出“我是语文老师”或“我是数学老师”。
要求每次修改源文件后,单独编译,然后直接运行应用程序(不要再编译)。
b.如果需要编译某个目录下的全部Java源文件,如D:\1001目录,可以使用如下命令:D:\1001>javac *.java请练习上述命令。
【题目3】1、实验要求:课本第15页习题2、实验后的练习习题8.(4)实验四类与对象【实验目的】1.掌握使用类来封装对象的属性和行为。
2.掌握对象的组合以及参数传递。
3.掌握类变量与实例变量,以及类方法与实例方法的区别。
文件保存要求:在D:盘新建文件夹“shiyan04”,在“D:\ 20120shiyan04”下新建文件夹“timu1”。
Java程序设计精编教程5-8章知识点

b) 如果变量名由多个单词组成,从第 2 个单词开始的每个单词的首字母要大写。
方法
方法的定义包括两部分:方法声明和方法体。一般格式为:
方法声明部分 {
方法体的内容
}
方法声明
方法声明包括返回值类型、方法名和参数。
double getArea() { //返回值类型为 double,无参数。
…
}
方法的返回值类型可以是 Java 中的任意数据类型。如果一个方法不返回数据,返回值类型必须是 void。
2. 有一个类 Singleton,为该类设计单例模式(该类只能有一个实例,且不能在类的外部 new 对象),只能通过该类 的静态方法 getInstance()获取该类的唯一对象。在主类 Homework2 中测试单例模式的有效性。
b) 在实例方法中,不仅可以调用实例方法,也可以调用类方法。 2) 类名调用类方法
a) 在类方法中,只能调用类方法、操作类变量。 b) 也可以通过对象调用类方法。 c) 如果一个方法不需要操作实例变量就可以实现某种功能,可以考虑将其声明为类方法。(例 5-8) 5.7 方法重载与多态 Java 中有两种多态:重载(overload)和重写(override)。 方法重载(overload):一个类中可以有多个名字相同的方法,但这些方法的参数必须不同,或者参数的个数不同, 或者参数的类型不同。方法的返回值类型与重载无关。
5.8 this 关键字 this 只能出现在实例方法和构造方法(也属于实例方法)中,表示调用该方法的当前对象。 一般情况下,方法中 this.实例变量的 this 可省略、类名.类变量的类名可省略,但当局部变量与成员变量同名时,
this 或类名不能省略。 5.9 包
包是 Java 语言管理类的一种机制,类似于操作系统中的目录,使用包名可以有效区分名字相同的类。 包语句
JAVA实验报告

学生实验报告课程名称:面向对象程序语言(Java)年级:专业:学号:姓名:指导教师:实验地点:学年至学年度第学期1.目录实验一初识Java——“一个简单的应用程序”实验二基本数据类型与数组——“输出希腊字母表”实验三分支与循环语句——“猜数字游戏”实验四类与对象——“机动车”实验五类与对象——“家中的电视”实验六类与对象——“共饮同井水”实验七类与对象——“求方程的根”实验八子类与继承——“中国人、北京人和美国人”实验九子类与继承——“银行计算利息”实验十子类与继承——“公司支出的总薪水”实验十一接口与实现——“评价成绩”实验十二内部类与异常类——“检查危险品”实验十三常用实用类——“检索简历”实验十四组件及时间处理——“计算三角形的面积”实验十五实验十六实验(一)初识Java——“一个简单的应用程序”实验时间:2017年02月21日实验目的本实验的目的是让学生掌握开发Java应用程序的三个步骤:编写源文件、编译源文件和运行应用程序实验要求编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,欢迎学习Java”和“We are students”。
实验内容public class Hello {public static void main (String args[ ]) {System.out.println("你好,很高兴学习Java"); //命令行窗口输出"你好,很高兴学习Java"A a=new A();a.fA();}}class A {void fA() {System.out.println("We are students"); //命令行窗口输出"We are students"}}实验结果分析通过本次实验,在老师的指导下我学会了基本的JAVA编译原理,能够自行改变环境变量,能够成功编译出一个简单的应用程序,而且通过实验后的练习知道了一些基础的错误在JAVA中出现时编译器的提示信息是怎样的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
};
2020/8/24
5
例子2
下面的例子2中,向一个方法的参数传递了一个匿名类的对 象,并用匿名类创建了一个对象。运行效果如图6.2。
Example6_2.java 程序运行效果如图6.2。
2020/8/24
6
6.2.2 和接口有关的匿名类
假设Computable是一个接口,那么,Java允许直接用接口名和 一个类体创建一个匿名对象,此类体被认为是实现了Computable 接口的类去掉类声明后的类体,称作匿名类。
如果在try~catch语句中执行了return语句,那么finally子语句仍 然会被执行。
try~catch语句中执行了程序退出代码,即执行System.exit(0);, 则不执行finally子语句。
2020/8/24
12
例子6
例子6中模拟向货船上装载集装箱,如果货船超重,那么货 船认为这是一个异常,将拒绝装载集装箱,但无论是否发生异 常,货船都需要正点启航。运行效果如图6.6。代码链接
异常对象可以调用如下方法得到或输出有关异常 的信息:
public String getMessage(); public void printStackTrace(); public String toString();
2020/8/24
8
6.3.1 try~catch语句
Java使用try~catch语句来处理异常,将可能出现的异常操作放 在try~catch语句的try部分,将发生异常后的处理放在catch部分。 try~catch语句的格式如下:
2020/8/24
10
例子5
People类中有一个设置age的方法,如果向该方法传递小于1 或大于160的整数,方法就抛出异常。程序运行效果如图6.5。 Example6_5.java People.java IntegerException.java
2020/8/24
11
6.4 finally子语句
一个方法在声明时可以使用throws关键字声明要产 生的若干个异常,并在该方法的方法体中具体给出产生 异常的操作,即用相应的异常类创建对象,并使用 throw关键字抛出该异常对象,导致该方法结束执行。
注:throw是Java的关键字,该关键字的作用就是抛出异常. throw和throws是两个不同的关键字。
assert booleanExpression; assert booleanExpression:messageException;
2020/8/24
14
例子7
例子7在计算若干个正数的和时使用了断言语句,运行效果 如图6.7。代码链接
2020/8/24
15
6.6 小结
1.Java支持在一个类中声明另一个类,这样的类称作内部类, 而包含内部类的类成为内部类的外嵌类。
《Java面向对象程序设计》第2版 第6章
内部类与异常类
配合< Java面向对象程序设计>第2版 例子源代码一起使用
2020/8/24
1
导读
2020/8/24
2
6.1 内部类
类可以有两种重要的成员:成员变量和方法,实际上Java 还允许类可以有一种成员:内部类。
Java支持在一个类中声明另一个类,这样的类称作内部类, 而包含内部类的类成为内部类的外嵌类。 内部类和外嵌类之间的重要关系如下。 内部类的外嵌类的成员变量在内部类中仍然有效,内部类中 的方法也可以调用外嵌类中的方法。 内部类的类体中不可以声明类变量和类方法。外嵌类的类体 中可以用内部类声明对象,作为外嵌类的成员。
2020/8/24
13
6.5 断言
断言语句用于调试代码阶段。在调试代码阶段让 断言语句发挥作用,这样就可以发现一些致命的错误, 当程序正式运行时就可以关闭断言语句,但仍把断言 语句保留在源代码中,如果以后应用程又需要调试, 可以重新启用断言语句。
使用关键字assert声明一条断言语句,断言语句有 以下两种格式:
本节通过一个例子熟悉带finally子语句的try~catch语句,语 法格式如下:
try{ } catch(ExceptionSubClass e){ } finally{ }
其执行机制是:在执行try~catch语句后,执行finally子语句,也 就是说,无论在try部分是否发生过异常,finally子语句都会被执行。 但需要注意以下两种特殊情况:
2020/8/24
4
6.2 匿名类
6.2.1 和子类有关的匿名类
Java允许我们直接使用一个类的子类的类体创建 一个子类对象。
创建子类对象时,除了使用父类的构造方法外还有 类体,此类体被认为是一个子类去掉类声明后的类体, 称作匿名类。
假设Bank是类,那么下列代码就是用Bank的一个子 类(匿名类)创建对象:
下列代码就是用实现了Computable接口的类(匿名类)创建对 象:
new Computable() { 实现接口的匿名类的类体
};
例子3演示了和接口有关的匿名类的用法,运行效果如图6.3。
2020/8/24
7
6 .3 异常类
所谓异常就是程序运行时可能出现一些错误,比 如试图打开一个根本不存在的文件等,异常处理将会 改变程序的控制流程,让程序有机会对错误作出处理。
内部类仅供它的外嵌类使用,其他类不可以用某个类的内 部类声明对象。
2020/8/24
3
例子1
某种类型的农场饲养了一种特殊种类的牛,但不希望其他 农场饲养这种特殊种类的牛,那么这种类型的农场就可以将创 建这种特殊种牛的类作为自己的内部类。
下面的例子1(Example6_1.java)中有一个RedCowForm(红 牛农场)类,该类中有一个名字为RedCow(红牛)的内部类。 程序运行效果如图6.1。
try { 包含可能发生异常的语句
} catch(ExceptionSubClass1 e) {
… } catch(ExceptionSubClass2 e) {
… }
例子4给出了try~catch语句的3.2 自定义异常类
我们也可以扩展Exception类定义自己的异常类, 然后规定哪些方法产生这样的异常。