Java程序设计基础__第14章_事件处理
- 格式:pptx
- 大小:864.94 KB
- 文档页数:57
《Java程序设计基础》课程标准一、课程说明二、课程定位《Java程序设计基础》课程是面向软件与信息服务专业学生开设的必修专业课。
通过本课程的学习,能使学生掌握程序设计的基本思想与方法,掌握面向对象编程技术,常用系统类使用,图形用户界面设计,图形处理,多媒体处理,异常处理,文件和流处理,多线程技术和网络编程技术,为学生后续知识(如:Android开发技术)的学习打下基础,同时也为毕业后从事相关专业职业岗位工作具备基本计算机应用能力打下坚实的基础。
三、设计思路《Java程序设计基础》是一门实践性很强的课。
Java语言作为一门经典的面向对象高级程序设计语言其优势在于网络程序设计。
《Java程序设计基础》课程主要侧重于面向对象程序设计和简单网络程序设计实践能力的培养。
该课程的任务,不只是为了要求学生学会使用某种特定的语言,更重要的是要求学生学习面向对象的软件设计思想,以此拓展学生的软件设计的思维空间,训练学生的软件设计的实际开发能力。
在教学过程中注重培养提高学生的职业岗位技能和职业素质,力求达到岗位技能和职业标准。
教学要求在每一章教学内容之后给出,大体分为三个层次:了解、掌握和熟练掌握。
它们的含义大致为:了解就是掌握概念,掌握就是能够理解和分析现有知识,熟练掌握就是会运用所学知识解决实际问题。
四、课程培养目标(一)专业能力1.通过学习使得学生掌握Java开发工具,掌握面向对象程序的基本结构,能够完成基本类的设计和应用。
2.掌握程序设计的基础:基本的数据类型,运算符、表达式和语句。
3.掌握程序设计的结构、设计方法。
4.掌握数组和字符串的使用。
5.掌握继承的概念、能够正确地实现继承。
6.能够准确地理解接口,掌握接口的设计和实现方法。
7.理解异常处理的概念,能够准确地应用异常的处理方法,在未来工作中处理不同异常。
8.掌握集合类的概念和使用方法。
9.掌握图形界面的设计方法,掌握不同组件的功能和使用方法,掌握布局的设计方法。
课程名称:java程序设计时间:2015-2016学年第二学期授课教师:****授课班级:151软件(30人)、151计网(25人)Java程序设计:第一章:Java语言概述2课时第二章:java语言基础4课时第三章流程控制10课时第四章数组4课时第五章字符串2课时第六章类及对象4课时第七章java语言类的特性12课时第八章继承、抽象类和接口22课时复习、机动4课时合计:64课时推荐用书(图):1、Java程序设计基础(第4版)实验指导邹林达陈国君主编清华大学出版社ISBN 978—7—302—35279—22、Java程序设计基础(第4版)陈国君主编清华大学出版ISBN 978—7—302-33142-1Java程序设计授课计划:第1周第一章:Java语言概述2课时2课时第1周第二章:java语言基础—数据类型2课时第2周第二章:java语言基础—运算符及表达式2课时4课时第2周第三章流程控制—选择结构2课时第3周第三章流程控制-选择结构之多分支2课时第3周第三章流程控制-while循环嵌套2课时第4周第三章流程控制-for循环嵌套2课时第4周第三章流程控制-循环嵌套2课时10课时第5周第四章数组-一维数组2课时第一章:Java语言概述(2课时)教学目标:●课程所讲述的内容●Java语言的由来●Java语言的版本说明●Java语言的跨平台●Java开发环境配置教学重难点:●配置开发环境➢什么是Java语言:java语言的发展及开发环境➢Java语言的基本结构:java语言的基本结构➢Java语言的基本要素:java基本语法/类及对象/继承及接口✓Java语言高级知识:➢异常、IO、多线程➢Java异常处理及捕获机制➢Java输入及输出流➢Java多线程➢Java图形用户组建Swing类2.计算机语言发展的四个阶段1)机器语言2)汇编语言3)高级语言4)结构化程序设计语言3.java发展背景1)sun公司在很多领域有前瞻性,提前预判到一些“科技”及人类生活发展的要素。
第一章思考题】1、简述path 环境变量的作用。
2、请说说你对JVM 的理解。
答案】1、path 环境变量是系统环境变量中的一种,它用于保存一系列可执行文件的路径,每个路径之间以分号分隔。
当在命令行窗口运行一个可执行文件时,操作系统首先会在当前目录下查找是否存在该文件,如果不存在会继续在path 环境变量中定义的路径下去寻找这个文件,如果仍未找到,系统会报错。
2、JVM 是Java Virtual Machine 的缩写,全称是Java 虚拟机。
Java 语言的一个非常重要的特性就是跨平台性,而Java 虚拟机是实现这一特性的关键。
不同的操作系统需要使用不同版本的虚拟机,这种方式使得Java语言能够“一次编写,到处运行”。
Java语言编译程序只需生成在Java 虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。
第二章【思考题】1、请简述& 与&& 的区别。
2、简述break、continue 和return 语句的区别。
【答案】1、&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。
当运算符“ &”和“ && ”的右边为表达式时,使用“ &”进行运算,不论左边为true 或者false,右边的表达式都会进行运算。
如果使用" && ”进行运算,当左边为false时,右边的表达式则不会进行运算,因此“ && ”被称作短路与。
2、break 语句:在switch 条件语句和循环语句中都可以使用break 语句。
当它出现在switch 条件语句中时,作用是终止某个case并跳出switch结构。
Java语言程序设计基础篇课后答案-机械工业出版社Java语言程序设计1 / 81&[编程练习题答案]Java语言程序设计(基础篇)(进阶篇)第13、14、15、24、25、26、28、29、30、31章部分习题答案,奇数题和部分双数题是我自己做的,在此和大家分享(^_^~Chapter 13 Exercise 13.2 / 13.8 / 13.11import javax.swing.*;import java.awt.*;public class Exercise13_2 extends JFrame {// Create two buttonsprivate OvalButton jbtOk = new OvalButton("OK");private OvalButton jbtCancel = new OvalButton("Cancel");/** Default constructor */public Exercise13_2() {// Set the window titlesetTitle("Exercise13_2");// Set FlowLayout manager to arrange the componentsJava语言程序设计2 / 81// inside the framegetContentPane().setLayout(new FlowLayout());// Add buttons to the framegetContentPane().add(jbtOk);getContentPane().add(jbtCancel);}/** Main method */public static void main(String[] args) {Exercise13_2 frame = new Exercise13_2();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.pack();frame.setVisible(true);}}class OvalButton extends JButton {public OvalButton() {}public OvalButton(String text) {super(text);}protected void paintComponent(Graphics g) {// Draw an ovalsuper.paintComponent(g);g.drawOval(5, 5, getWidth() - 10, getHeight() - 10); }/** Override get method for preferredSize */public Dimension getPreferredSize() {return new Dimension(100, 50);}/** Override get method for minimumSize */public Dimension getMinimumSize() {return new Dimension(100, 50);}}Java语言程序设计3 / 81import java.awt.*;import javax.swing.*;public class Exercise13_8 extends JFrame {public static void main(String[] args) {JFrame frame = new Exercise13_8();frame.setSize(300, 300);frame.setTitle("Exercise13_8");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);}public Exercise13_8() {getContentPane().add(new OctagonPanel());}}class OctagonPanel extends JPanel {protected void paintComponent(Graphics g) {super.paintComponent(g);int xCenter = getWidth() / 2;int yCenter = getHeight() / 2;int radius =(int) (Math.min(getWidth(), getHeight()) * 0.4);// Create a Polygon objectPolygon polygon = new Polygon();// Add points to the polygonpolygon.addPoint(xCenter + radius, yCenter);polygon.addPoint((int)(xCenter + radius * Math.cos(2 *Math.PI / 8)),(int)(yCenter - radius * Math.sin(2 * Math.PI / 8)));polygon.addPoint((int)(xCenter + radius * Math.cos(2 * 2 * Math.PIJava语言程序设计4 / 81/ 8)),(int)(yCenter - radius * Math.sin(2 * 2 * Math.PI / 8)));polygon.addPoint((int)(xCenter + radius * Math.cos(3 * 2 * Math.PI/ 8)),(int)(yCenter - radius * Math.sin(3 * 2 * Math.PI / 8)));polygon.addPoint((int)(xCenter + radius * Math.cos(4 * 2 * Math.PI/ 8)),(int)(yCenter - radius * Math.sin(4 * 2 * Math.PI / 8)));polygon.addPoint((int)(xCenter + radius * Math.cos(5 * 2 * Math.PI/ 8)),(int)(yCenter - radius * Math.sin(5 * 2 * Math.PI / 8)));polygon.addPoint((int)(xCenter + radius * Math.cos(6 * 2 * Math.PI/ 8)),(int)(yCenter - radius * Math.sin(6 * 2 * Math.PI / 8))); polygon.addPoint((int)(xCenter + radius * Math.cos(7 * 2* Math.PI/ 8)),(int)(yCenter - radius * Math.sin(7 * 2 * Math.PI / 8)));// Draw the polygong.drawPolygon(polygon);}}import javax.swing.*;import java.awt.*;public class Exercise13_11 extends JFrame {public Exercise13_11(){add(new SquareFunction());}/*** @param args*/public static void main(String[] args) {Java语言程序设计5 / 81// TODO 自动生成方法存根Exercise13_11 frame = new Exercise13_11();frame.setTitle("Exercise13.11");frame.setSize(300,200);frame.setLocationRelativeTo(null);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);}}class SquareFunction extends JPanel {public SquareFunction(){}protected void paintComponent(Graphics g){super.paintComponent(g);g.drawLine(10, this.getHeight()-20, this.getWidth()-10,this.getHeight()-20);g.drawLine(this.getWidth()-30, this.getHeight()-15,this.getWidth()-10, this.getHeight()-20);g.drawLine(this.getWidth()-30, this.getHeight()-25,this.getWidth()-10, this.getHeight()-20);g.drawString("X", this.getWidth()-10,this.getHeight()-30);g.drawLine(this.getWidth()/2, 20, this.getWidth()/2,this.getHeight()-5);g.drawLine(this.getWidth()/2, 20, this.getWidth()/2-5,35);g.drawLine(this.getWidth()/2, 20, this.getWidth()/2+5,35);g.drawString("Y", this.getWidth()/2 + 10, 30);Polygon p = new Polygon();double scaleFactor = 0.01;for (int x=-100; x<=100; x++){p.addPoint(x+this.getWidth()/2,this.getHeight()-20-(int)(scaleFactor*x*x));}g.drawPolyline(p.xpoints, p.ypoints, p.npoints);}}Java语言程序设计6 / 81Chapter 14 Exercise 14.4 / 14.8 / 14.9package chapter14;import javax.swing.*;import java.awt.event.*;import java.awt.*;public class Exercise14_4 extends JFrame {public Exercise14_4(){MousePosition p = new MousePosition();add(p);}/*** @param args*/public static void main(String[] args) {// TODO 自动生成方法存根Exercise14_4 frame = new Exercise14_4();frame.setTitle("Exercise14.4");frame.setSize(300, 200);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setLocationRelativeTo(null);frame.setVisible(true);}static class MousePosi。
1、Java课程设计案例精编作者:张广彬、孟红蕊、张永宝出版社:清华大学出版社ISBN:9787302141532 出版时间:2007年01月定价:45元2、Java课程设计案例精编(第二版)作者:黄晓东等编著现价:23.2元出版社:中国水利水电出版社ISBN:9787508444505出版日期:2007-04定价:29元3、Java课程设计(第二版)作者:耿祥义出版社:清华大学出版社ISBN:9787302184287出版时间:2008-11-1 定价:29.5元4、《JAV A课程设计》作者:黄明等编著, 出版社:电子工业出版社, ISBN:7-121-02742-9出版日期:2006-6- ,定价:¥19.8元5、Java程序设计课程设计作者:辛运帏高宁徐文栓等著出版社:机械工业出版社出版日期:2005-03 ISBN:711115653定价:23元Java课程设计案例精编作者:张广彬、孟红蕊、张永宝图书详细信息:ISBN:9787302141532定价:45元印次:1-3装帧:平装印刷日期:2008-3-5图书简介:Java语言已成为软件设计开发应当掌握和一门基础语言。
本书为Java调和设计指导用书,共分11章,具体内容包括:Java环境的安装与配置、Java语言编程的基础知识、Java语言中最重要的类与对象、网页浏览器案例、蜘蛛纸牌案例、吃豆子游戏案例、端口扫描案例、聊天程序案例、连连看游戏案例、中国象棋对弈系统案例、学生管理信息系统案例。
本书以案例带动知识点的讲解,向读者展示实际项目的设计思想和设计理念,使其可举一反三。
每个实例各有侧重点,避免实例罗列和知识点重复,并提供完整的项目实现代码,附于配书光盘中。
本书案例典型,选择目前高校课程设计的典型项目,并注重切合实际应用,使读者真正做到学以致用。
本书适合作为高等院校学生Java课程设计指导用书,也可作为Java语言程序开发人员及爱好者的指导用书。
1.首先开发者编写的源程序是.java格式的,.java代码经过编译器的首次编译,生成字节码文件(.class文件),字节码文件是无法直接被计算机识别的,这一点与C语言不同。
字节码文件可以随平台进行移植,但无论在何种平台上运行都要经过JVM的解释,也就是将中间的字节码文件解释成计算机能够识别的机器语言,从而在各种环境下运行起来。
2.详见本章1.7.3节1.使用固定的编码格式对于编程而言有什么意义?编码是用预先规定的方法将文字、数字或其它对象编成数码,或将信息、数据转换成规定的电脉冲信号。
为保证编码的正确性,编码要规范化、标准化,即需有标准的编码格式。
2.如果没有关键字或者在程序中随意命名,可能会引发什么后果?代码混乱,自定义的变量等名称与已有功能无法分辨。
3. 常量与变量的区别以及各自的引用场合。
常量一旦定义了就不允许被修改。
往大的说,定义常量,是不想让某些固定的属性或方法被调用后改变了值,或者被继承后重写。
变量相对使用灵活,无论是创建还是销毁等。
4. 列举一些常见的数据,分析使用Java中什么数据类型表示更合适。
byte 年龄、short 年份、int 端口号、long 身份证号、boolean 是否为男性、char 字母表中的每个字母、float 汽车排量、double 圆周率。
5. 思考数组的优点与缺点,提出一些能使其更加方便的使用提议。
优点:使用简单缺点:长度不可变建议:可以自己写一个动态数组类,可动态控制其长度和元素顺序。
1.表达式中的运算符应该尽可能的简练吗?不应该,过于简练的代码会影响其阅读性。
2.循环语句与条件语句嵌套使用的弊端是什么,如何在开发中进行取舍?嵌套使用的弊端在于增加代码层次,影响其阅读性,在开发中应该在不影响功能和性能的前提下尽量的减少嵌套的使用。
3.break、continue、return有何异同点?相同点:都会改变程序本省的执行流程。
不同点:作用的力度不同。
1.创建一个包,编写一个学生类并提供适当的属性与行为。
Java程序设计杭州医学院智慧树知到答案2024年第一章测试1.Java语言与其它语言相比,独有的特点是()A:面向对象B:多线程C:网络编程D:平台无关答案:D2.Android系统是电脑桌面操作系统。
()A:错 B:对答案:A3.机器语言是种高级语言()A:对 B:错答案:B4.开发Java可以不用搭建JDK环境()A:错 B:对答案:A5.Eclipse 是Java常用的IDE ()A:对 B:错答案:A第二章测试1.面有关java基本类型的默认值和取值范围,说法错误的是()。
A:字节型的类型默认值是0,取值范围是-27—27-1B:字符型类型默认是0,取值范围是-215 —215-1C:boolean类型默认值是false,取值范围是true\falseD:long类型默认是0,取值范围是-263—263-1答案:B2.IDE中嵌入的控制台能满足程序的输入输出功能()A:对 B:错答案:A3.Java 使用Scanner类进行控制台输入操作()A:对 B:错答案:A4.3days 是Java中合法标识符()A:对 B:错答案:B5.标识符可以为任意长度,但实际使用中应尽量避免过长的命名,以便于代码阅读()A:对 B:错答案:A第三章测试1.若 a 的值为 3 时,下列程序段被执行后, c 的值是多少?()A:2B:3C:4D:1答案:B2.if else语句嵌套不能超过3层()A:错 B:对答案:A3.if语句只作用于紧接着下去的第一句话,所以用大括号将属于某分支的所有语句扩起来是种良好的工程习惯()A:错 B:对答案:B4.假设表达式p为真,表达式q为假,那么p||q为真()A:对 B:错答案:A5.switch 语句适合离散数值的分支处理()A:错 B:对答案:B第四章测试1.以下代码的输出的正确结果是()A:15B:16C:8D:24答案:C2.Java中 Math.ceil(9.9)返回值为 9 ()A:对 B:错答案:B3.Java中 Math.floor(-3.4)返回值为 -3.0 ()A:错 B:对答案:A4.Java中,字符串是用单引号引起来的0个或者多个字符()A:对 B:错答案:B5.ASCII 已经满足了所有编码需求()A:对 B:错答案:B第五章测试1.下列循环语句序列执行完成后,i的值是()A:10B:2C:11D:不确定答案:C2.循环语句的目的之一是为了避免写重复代码()A:错 B:对答案:B3.While 语句, do while语句都可以用来实现循环目的()A:对 B:错答案:A4.break 可以用于if语句中()A:对 B:错答案:B5.continue语句只能用于循环语句中()A:对 B:错答案:A第六章测试1.下列方法定义中,正确的是()A:int x( ){ ...return true; }B:int x( int a, b){ return a+b; }C:int x( ){ char ch=’a’; return (int)ch; }D:void x( ){ ...return true; }答案:C2.函数调用时,提供的参数要和形参一一对应()A:错 B:对答案:B3.函数的实参可以是常量、变量或表达式()A:错 B:对答案:B4.从工程角度讲,不建议过多使用全局变量()A:对 B:错答案:A5.设计函数层次时,我们主要采用自顶向下的思维进行设计()A:对 B:错答案:A第七章测试1.以下说法错误的是()A:在Java中,数组存储在堆中连续内存空间里B:数组的大小可以任意改变C:数组不是一种原生类D:数组是一个对象答案:B2.数组的使用时,需要先定义,后使用()A:错 B:对答案:B3.假设一维数组的长度为10,那么在使用下标访问数组的时候,下标最大可以为10 ()A:对 B:错答案:B4.Java中,如果用=进行数组拷贝,这个过程是深拷贝,改变其中一个数组,不影响另一个数组()A:错 B:对答案:A5.Java中支持可变长数组形参()A:错 B:对答案:B第八章测试1.以下二维数组声明合法的是()A:char[2][3] ch = new char[][]B:char[2][] ch = new char[][3]C:char[][] ch = new char[2][3]D:char[][] ch = new [2]char[3]答案:C2.二维数组的元素按照行优先进行存储,第一行的元素先于第二行的元素存储,以此类推()A:错 B:对答案:B3.三维数组可以理解为以二维数组为元素的一维数组()A:对 B:错答案:A4.Java中,支持二维数组作为函数参数()A:对 B:错答案:A5.Java中,使用new创建二维数组的时候可省略列数,但不可省略行数()A:错 B:对答案:B第九章测试1.下列关于构造方法的叙述中,错误的是()A:Java语言规定构造方法只能通过new自动调用 B:Java语言规定构造方法名与类名必须相同 C:Java语言规定构造方法不可以重载 D:Java语言规定构造方法没有返回值,但不用void声明答案:C2.为了使包ch4在当前程序中可见, 可以使用的语句是()。
第一章 Java语言基础 (5)1.1 指出JA V A语言的主要特点和JA V A程序的执行过程。
(5)1.2 说出开发与运行JA V A程序的重要步骤。
(5)1.3 如何区分应用程序和小应用程序? (5)1.4 说出JA V A源文件的命名规则。
(5)1.6 JA V A语言使用什么字符集?共有多少个不同的字符? (5)1.7 JA V A语言标识符的命名规则是什么? (6)1.8 JA V A有那些基本数据类型,它们的常量又是如何书写的? (6)1.9 指出下列内容哪些是JA V A语言的整型常量,哪些是浮点数类型常量,哪些两者都不是。
(6)第二章运算和语句 (7)2.1 Java的字符能参加算术运算吗? (7)2.2 占字节多的变量能直接赋值给占字节少的变量么? (7)2.3 试用Java语言表达式描述以下数学计算式或逻辑条件: (7)2.4 设在求以下表达式之前,整型变量a的值是4,试指出在求了以下表达式之后,变量a、b和c的值。
(7)2.6 若一个数恰好等于它的因子之和,则这个数称为“完全数”。
编写程序求1000之内的所有完全数。
(7)2.7 编写输入正实数x,求平方不超过x的最大整数n,并输出。
(8)2.8 输入正整数n,输出由n行n列星号字符组成的三角形图案。
(11)2.9 设有整型变量x和y的值分别为5和110。
试指出执行了以下循环语句后,变量x和y的值分别多少? (12)2.10求小于999的所有水仙花数。
(12)2.11 编程序解百鸡问题:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。
百钱买百鸡。
求鸡翁、鸡母和鸡雏各几何? (13)2.12 编写程序,按下面的公式计算自然对数底e的值:e=1+1/1!+1/2!+1/3!+1/4!+...... (13)2.13 编写程序,用如下公式计算圆周率PI的近似值:PI=4-4/3+4/5-4/7+4/9-4/11... (14)2.14 回文整数是指正读法和反读相同的整数,编写一个程序,输入一个整数,判断他是否为回文整数。