JAVA程序设计实验指导书及答案.pdf_第1页
JAVA程序设计实验指导书及答案.pdf_第2页
JAVA程序设计实验指导书及答案.pdf_第3页
JAVA程序设计实验指导书及答案.pdf_第4页
JAVA程序设计实验指导书及答案.pdf_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

燕山大学经济管理学院燕山大学经济管理学院 JAVA 程序设计语言程序设计语言 实验指导书 经济管理学院电子商务系 2010 年 8 月 实 验 说 明 JAVA 程序设计语言 Java 语言是一种完全面向对象的计 算机程序设计语言 它具有 一次编写 到处运行 的跨平台特 性 该课程作为电子商务专业的一门专业课 主要介绍 JAVA 程 序设计语言的基本知识 为日后学生进一步学习 J2ME 或 J2EE 打下牢固的程序设计语言基础 实验课是 JAVA 程序设计语言 的重要实践环节 通过实 验 使学生加深理解 验证 巩固课堂教学内容 加深对 JAVA 程序设计的过程 方法的理解 发挥学生的想象力和创新能力 本实验课程共开设 5 个实验项目 实验方式与基本要求 实验方式与基本要求 学生须在实验前预习相应实验内容 熟悉实验的基本原理 方法及要求 制定好上机步骤 弄清实验目的 实验每次均为 2 学时 学生须按时到场 要求学生掌握程序设计的各种基本方法 与步骤 并在实验中得到提高 考核及报告 考核及报告 实验时立将各种问题与结果记录下来 实验内容可以通过 截图等方式存入 U 盘 并在课后完成实验报告内容 任课教师 对每次记录都要进行检查 分析 登记 课程总成绩应为理论 考核 实验成绩的综合 其中实验课程成绩占 30 理论课成绩 占 70 实验一实验一 熟悉熟悉 Java 程序开发环境程序开发环境 一 实验目的 1 了解和使用 J2sdk1 5 0 JDK 集成环境 2 熟悉 J2sdk 集成环境的基本命令 功能和基本用法 并学会配置 path 等环境变量 3 学习并熟练掌握使用 J2SDK 环境进 Java 程序开发的全过程 包括 源程序的编辑 编译 调试 运行和结果查看 4 了解和掌握 JCREATOR 和 Eclipse 集成环境的安装 简单应用 5 了解 Java Application 和 Applet 程序的基本结构 6 了解 Java 程序文件名和类名的说明方法 二 实验内容与要求 1 安装 Jdk1 5 0 集成环境 安装成功后 配置 path classpath 路径 让用户在任何目录 下均可用到 Java 的系统资源 设置环境变量 PATH 和 CLASSPATH 如果在 autoexec bat 中没有进行设置 进入命令 行 MS DOS 方式 进行如下设置 SET PATH D JDK1 5 0 BIN PATH SET CLASSPATH CLASSPATH 2 安装 Jdk1 5 0Doc 并查看 Jdk 1 5 0 Doc文档中 和课堂教学有关系的部分 在整个实验过程中都可以参考 3 建立自己的工作目录如 d user 以后的 Java 程序和过程文件均放置在此目录下 输入一个 Application 源程序 学习编辑 编译 运行程序的方法 例 1 1 文件 HelloWorldApp java 如下 HelloWorldApp java public class HelloWorldApp public static void main String args System out println Hello World 本程序的作用是输出下面一行信息 Hello World 现在我们可以运行该程序 首先把它放到一个名为 HelloWorldApp java 的文件中 这 里 这文件名应和类名相同 因为 Java 解释器要求公共类必须放在与其同名的文件中 然后对它进行编译 d user javac HelloWorldApp java 编译的结果是生成字节码文件 HelloWorldApp class 最后用 java 解释器来运行该字 节码文件 d user java HelloWorldApp 结果在屏幕上显示 HelloWorld 4 输入一个 applet 源程序 学习编辑 编译 运行程序的方法 简单的 Applet 小程序 例 1 2 HelloWorldApplet java import java awt import java applet public class HelloWorldApplet extends Applet anapplet public void paint Graphics g g drawString Hello World in Applet 20 20 这个程序中没有实现 main 方法 这是 Applet 与应用程序 Application 如上例 的区别之一 为了运行该程序 首先我们也要把它放在文件 HelloWorldApplet java 中 然后对它进行编译 d user javacHelloWorldApplet java 得到字节码文件 HelloWorldApplet class 由于 Applet 中没有 main 方法作为 Java 解释器的入口 我们必须编写 HTML 文件 把该 Applet 嵌入其中 然后用 appletviewer 来运行 或在支持 Java 的浏览器上运行 如 IE 它的文件如下 An Applet 其中用标记来启动 HelloWorldApplet code 指明字节码所在的文件 width 和 height 指明 applet 所占的大小 把这个 HTML 文件存入 Example html 然后运行 d user appletviewerExample html 这时屏幕上弹出一个窗口 其中显示 Hello World in Applet 三 思考题 1 什么是 Java 虚拟机 它的作用是什么 答 答 Java 虚拟机是一个想象中的 能运行虚拟机是一个想象中的 能运行 Java 字节码的操作平台 字节码的操作平台 Java 语言的一个非常语言的一个非常 重要的特点就是与平台的无关性 引入重要的特点就是与平台的无关性 引入 Java 语言虚拟机后语言虚拟机后 Java 语言在不同平台上运行时语言在不同平台上运行时 不需要重新编译 不需要重新编译 2 Java Application 程序与 Java Applet 程序的不同之处有那些 请各位同学收集错误代码与 提示信息 以及产生错误的原因 答答 1 运行方式不同运行方式不同 Java Application 是完整的程序是完整的程序 可以独立运行可以独立运行 Java Applet 程序程序 不能单独运行不能单独运行 它必须嵌入到用它必须嵌入到用 HTML 语言编写的语言编写的 Web 页面中页面中 通过与通过与 Java 兼容的兼容的浏览浏览 器器来控制执行来控制执行 2 运行工具不同 运行工具不同 Java Application 程序被编译以后 用普通的程序被编译以后 用普通的 Java 解释器解释器就可以使其就可以使其 边解释边执行 而边解释边执行 而 JavaApplet 必须通过网络浏览器或者必须通过网络浏览器或者 Applet 观察器才能执行 观察器才能执行 3 程序结构不同 每个 程序结构不同 每个 Java Application 程序必定含有一个并且只有一个程序必定含有一个并且只有一个 main 方法方法 而而 Applet 程序则没有含程序则没有含 main 方法的主类 这也正是方法的主类 这也正是 Applet 程序不能独立运行的原因 程序不能独立运行的原因 4 受到的限制不同受到的限制不同 JavaApplication 程序可以设计成能进行各种操作的程序程序可以设计成能进行各种操作的程序 包括读包括读或或 写文件的操作写文件的操作 但是但是 JavaApplet 对站点的对站点的磁盘磁盘文件既不能进行读操作文件既不能进行读操作 也不能进行写也不能进行写 操操 作 作 3 列举出 5 种以上 Java 开发平台 分析他们的优缺点或特点 答 java Workshop NetBeans 桌面开发 桌面开发 JBuilder VisualAge Notepad Editplus 实验二实验二 简单数据类型和流程控制简单数据类型和流程控制 一 实验目的 1 掌握 Java 语言的标识符和保留字 各简单数据类型变量以及有逻辑量意义数据的表示方 法以及表示条件的表达式的类型 2 掌握 Java 语言中具各种运算符表达式的基本知识 3 熟练掌握使用 if 语句进行单分支结构和双分支结构程序设计的基本方法 4 熟练掌握使用 if 语句的嵌套及 switch 语句进行多分支结构程序设计的基本方法 5 熟练掌握 while do while 和 for 三种语句组成循环结构的基本方法 熟练掌握特殊流 程控制语句如 break continue 标号语句 6 熟练掌握一维数组和二维数组的使用 7 把课堂上学到的理论用于实践 并验证理论的正确性 和发现新的问题 二 实验内容与要求 1 仔细读下面的 JAVA 语言源程序 自己给出程序的运行结果 public class Ch21 public static void main String args char x y z x K y z 117 System out print x System out print y System out print z 运行结果 运行结果 k o 2 仔细读下面的 JAVA 语言源程序 自己给出程序的运行结果 public class Ch22 public static void main String args boolean x y z int a 12 b 24 x a b y a b z a b 36 System out println x x System out println y y System out println z z 运行结果 运行结果 x false y true z true 3 仔细读下面的 JAVA 语言源程序 自己给出程序的运行结果 public classCh23 public static void main String args int x y z 0 for x 1 x 10 x for y 1 y5 break z System out println z z 运行结果 运行结果 z 45 4 设 int year month day 分别表示一个日期中的年月日 试编程求 a 对于任意三个整数 判断其是否为一个合法的日期值 b 给定一个日期值 计算若干天后的日期值 c 如果有两个日期值 计算他们相距的天数 3 找出一个二维数组的鞍点 即该位置上的元素在该行上最大 在列上最小 也可能没有 鞍点 6 编写一个程序 要求将一个浮点数强制转化成整型后再输出 7 请计算出 3 至 1000 范围内最大的 10 个素数 放入数组中 并计算出其累加和 三 思考题 1 定义变量的作用是什么 答 答 变量分为分为全局变量和局部变量 主要用于调用其值 还有逻辑判断时使用 一些变量分为分为全局变量和局部变量 主要用于调用其值 还有逻辑判断时使用 一些 比较复杂的逻辑操作 变量必不可少比较复杂的逻辑操作 变量必不可少 2 Java 运算符的优先级与结合性是怎样的 答 运算符的优先级由高到低为 后缀运算符 一元运算符 创建或强制类型转换 乘 答 运算符的优先级由高到低为 后缀运算符 一元运算符 创建或强制类型转换 乘 除除 求余求余 加加 减减 移位移位 关系运算关系运算 相等性判定相等性判定 按位与按位与 按位异或按位异或 按位或按位或 逻辑与逻辑与 逻辑或 条件运算 赋值 逻辑或 条件运算 赋值 3 long l 121233 float f 100 2323 这两行代码在编译时有什么错误 答答 在编译时虚拟机会认为在编译时虚拟机会认为 121233 是是 int 型数据型数据 而而 int 型数据存储空间不够存储该数型数据存储空间不够存储该数 会会 溢出 溢出 float 类型的应该是类型的应该是 float f 100 2323f 因为浮点类型默认是因为浮点类型默认是 double 的的 4 public value int a int b x a y b public class Ch31 public static void main String args int total value num new value 24 65 total num x num y System out println add total 2 定义一个类实现银行帐户的概念 包括的变量有 帐号 和 存款余额 包括的方法有 存款 取款 查询余额 和 显示帐号 定义主类 创建帐户类的对象 并完成相应 操作 提示 关键代码如下 public int getleftmoney return leftmoney public void savemoney double money leftmoney money public void getmoney double money if money leftmoney leftmoney money else System out println 只能取 leftmoney bankaccount ba new bankaccount 888123 1000 ba savemoney 21000 System out println 存入 21000 元后余额为 ba getleftmoney ba getmoney 11500 System out println 11500 元后余额为 ba getleftmoney 3 先创建一个 Point 类 然后定义 Trianglele 类 在 Trianglele 类中定义三个 Point 的实体 来表示一个三角形的三个点 再定义一个方法 setTri 对这三个点进行初始化 然后定义两 个方法求三角形的周长 面积 在 main 中创建一个对象 求给定三点的三角形的周长 面积 3 将上题的方法 setTri 改用构造方法实现初始化 4 编写 JAVA 程序求园柱体的表面积和体积 已知底面圆心 p 为 0 0 半径 r 为 10 圆柱体高 5 代码为 代码为 结果为 结果为 三 思考题 1 一个方法或一个块内定义的变量是否可以在方法外或块外使用 这种变量称为什么 方法的形式参数是否可以在方法之外使用 答 不可以 被成为局部变量 答 不可以 被成为局部变量 方法的形式参数是可以在方法之外使用方法的形式参数是可以在方法之外使用的 的 2 为什么说构造函数是一种特殊的方法 特殊在哪里 构造函数什么时候执行 被谁调 用 答答 在在 java 语言语言 中 构造函数又称构造方法 特殊性在于 与普通方法的区别是 他与中 构造函数又称构造方法 特殊性在于 与普通方法的区别是 他与 类名相同 不返回结果也不加类名相同 不返回结果也不加 void 返回值 构造函数的作用是初始化对象 即在创建对返回值 构造函数的作用是初始化对象 即在创建对 象时被系统调用象时被系统调用 与普通方法不同与普通方法不同 程序不能显示调用构造函数程序不能显示调用构造函数 构造函数还能够被重构造函数还能够被重 载 即可以传入参数 当程序中包含有带参的构造函数时 系统将不会再提供的无参构载 即可以传入参数 当程序中包含有带参的构造函数时 系统将不会再提供的无参构 造函数 造函数 构造方法在实例化对象时执行 构造方法在实例化对象时执行 3 子类重新定义与父类方法的方法头完全相同的方法 这种情况称为什么 答答 被称为方法重写被称为方法重写 子类可以调用父类的任何非私有方法子类可以调用父类的任何非私有方法 而用到而用到 super 时可能子类中时可能子类中 对父类的对父类的 datacreat 方法进行重写用方法进行重写用 super 表明调用的是父类里的方法表明调用的是父类里的方法 4 同名的不同方法共存的情况称为什么 如何区分这些同名方法 答答 一般来说一般来说 分为两种情况分为两种情况 一是在同一个类里面有两个或两个以上的同名的方法一是在同一个类里面有两个或两个以上的同名的方法 这这 些方法的名字相同 但参数不同 这种情况中叫重载 当你调用方法时 会根据你传进去些方法的名字相同 但参数不同 这种情况中叫重载 当你调用方法时 会根据你传进去 的参数的类型来决定调用哪个方法的参数的类型来决定调用哪个方法 二是一个类继承了另外一个类二是一个类继承了另外一个类 子类中有和父类中一子类中有和父类中一 样的方法 这两个方法不仅名字相同 参数也相同 这种情况叫方法覆盖 也就是在子类样的方法 这两个方法不仅名字相同 参数也相同 这种情况叫方法覆盖 也就是在子类 中重新定义父类中已有的方法 当你创建一个子类的实例后调用这个方法 就会按照你在中重新定义父类中已有的方法 当你创建一个子类的实例后调用这个方法 就会按照你在 子类中新定义的方法来实现 子类中新定义的方法来实现 5 定义一个矩形类 Rectangle 再定义接口 InterfaceRec 其中包含方法 getArea 由矩 形类派生出一个正方形类 自行扩充成员变量和方法 并实现此接口 InterfaceRec 中的方 法 实验四实验四 异常处理异常处理 一 实验目的 1 理解什么是例外 2 掌握 java 的例外处理机制和方法 二 实验内容与要求 1 仔细读下面的 JAVA 语言源程序 自己给出程序的运行结果 mport java io public class Ch61 public static void main String args throws IOException int ko new int 15 int n a String x BufferedReader keyin new BufferedReader new InputStreamReader System in System out print Enter an integer x keyin readLine n Integer parseInt x try a 110 n ko 15 100 System out println 此描述无法执行 catch ArithmeticException e System out println 除数为 0 的错误 catch ArrayIndexOutOfBoundsException f System out println 数组索引值大于数组长度的错误 System out println 执行完 catch 的描述 2 运行下面的程序 自己给出程序的运行结果 import java io public class Ch62 public Ch62 try int a new int 2 a 4 3 System out println After handling exception return here catch IndexOutOfBoundsException e System err println exception msg e getMessage System err println exception string e toString e printStackTrace finally System out println System out println finally System out println No exception public static void main String args new Ch62 3 使用 Java Aplication 的命令行参数读入两个数据 计算它们的和 然后将和输出 编 程自定义例外 OnlyOneException 与 NoOprandException 如果参数的数目不足 显示相应提 示信息并退出程序的执行 三 思考题 1 下面程序在编译时会出现什么错误 import java io class ExceptionDemo1 public static void main String args FileInputStream fis newFileInputStream text dat int b while b fis read 1 System out print b fis close 2 异常分为哪两类 答答 一类是非致命错误一类是非致命错误 经过某种修正后程序还能继续运行经过某种修正后程序还能继续运行 包括包括 RuntimeExcption 程序程序 设计或实现问题设计或实现问题 其他的异常其他的异常 通常是由环境因素造成的通常是由环境因素造成的 另一类是致命错误另一类是致命错误 是虚拟机出是虚拟机出 错 一般不由程序处理 错 一般不由程序处理 3 如果申明 int a new int 10 应属于那类异常 答 将数组里的值赋值为负数了 是非致命错误 答 将数组里的值赋值为负数了 是非致命错误 RuntimeException 4 比较 throw 和 throws 两者的用法上的区别 答 答 throws 关键字通常被应用在声明方法时 用来指定可能抛出的异常 多个异常可以使关键字通常被应用在声明方法时 用来指定可能抛出的异常 多个异常可以使 用逗号隔开用逗号隔开 当在主函数中调用该方法时当在主函数中调用该方法时 如果发生异常如果发生异常 就会将异常抛给指定异常对象就会将异常抛给指定异常对象 throw 关键字通常用在方法体中关键字通常用在方法体中 并且抛出一个异常对象并且抛出一个异常对象 程序在执行到程序在执行到 throw 语句时立即语句时立即 停止 它后面的语句都不执行 通过停止 它后面的语句都不执行 通过 throw 抛出异常后 如果想在上一级代码中来捕获并抛出异常后 如果想在上一级代码中来捕获并 处理异常处理异常 则需要在抛出异常的方法中使则需要在抛出异常的方法中使用用 throws 关键字在方法声明中指明要跑出的异常关键字在方法声明中指明要跑出的异常 如果要捕捉如果要捕捉 throw 抛出的异常 则必须使用抛出的异常 则必须使用 try catch 语句 语句 5 本实验的实验内容 2 中 finally 程序块的作用是什么 答 答 finally 语句为异常处理提供一个统一的出口 使得在控制流程转到程序的其他部分以语句为异常处理提供一个统一的出口 使得在控制流程转到程序的其他部分以 前 能够对程序的状态做统一的管理 前 能够对程序的状态做统一的管理 finally 语句语句位于位于 try 和 和 catch 后 该程序块 后 该程序块 有无异常都会运行 用于关闭文件或释放其他系统资源或删除临时文件 有无异常都会运行 用于关闭文件或释放其他系统资源或删除临时文件 实验五实验五 用户图形界面用户图形界面 GUI 标准组件及事件处理标准组件及事件处理 一 实验目的 1 掌握常用 GUI 控制组件的使用方法 2 掌握事件处理的方法 3 了解 swing 控件的概念 二 实验内容 1 编程包含一个标签和一个按钮 单击按钮时 标签的内容在 你好 和 再见 之间切换 代码是 代码是 结果是 结果是 2 编程包含一个文本框和一个文本区域 文本框内容改变时 将文本框中的内容显示 在文本区域中 在文本框中按回车键时 清空文本区域的内容 3 编程包含一个复选按钮和一个普通按钮 复选按钮选中时 普通按钮的背景色为青 色 未选中时为灰色 4 编程包含一个单选按钮组和一个普通按钮 单选按钮组中包含三个单选 文本说明 分别为 普通 黑体 和 斜体 选择文本标签为 普通 的单选按钮时 普通按钮中的文字 为普通字体 选择文本标签为 黑体 的单选按钮时 普通按钮中的文字的字体为黑体 选择 文本标签为 斜体 的单选按钮时 普通按钮中的文字的字体为斜体 代码是 代码是 结果是 结果是 5 编程包含一个下拉列表和一个按钮 下拉列表中有 10 14 18 三个选项 选择 10 时 按钮中文字的字号为 10 选择 14 时 按钮中文字的字号为 14 选择 18 时 按钮中文 字的字号为 18 6 编程包含一个列表和两个标签 在第一个标签中显示列表中被双击的选项的内容 在第二个标签中显示列表中被选中的所有选项的内容 7 编程确定当前鼠标的位置坐标 8 编程创建一个 Frame 实现窗口的监听器接口 9 编程使用 BorderLayout 布局方式放置 5 个按钮 代码是 代码是 结果是 结果是 三 思考题 1 Java 的事件处理机制是怎样的 答 事件源生成事件并将其发送至一个或多个监听器进行等待 直到它收到一个事件答 事件源生成事件并将其发送至一个或多个监听器进行等待 直到它收到一个事件 一旦事件被接受 监听器将处理这些事件 然后返回 一旦事件被接受 监听器将处理这些事件 然后返回 2 若一个数据只有两种取值可能 采用哪种组件表示比较合适 如果有二种到三种取 值可能 采用哪种合适 如果取值

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论