Java实验7
- 格式:doc
- 大小:102.50 KB
- 文档页数:6
实验7多线程程序设计一、实验目的:1、理解多线程程序运行的基本原理。
2、掌握多线程程序设计的基本方法。
3、学习多线程的同步机制,掌握利用同步机制访问共享资源的方法。
二、实验任务:1、编写一个GUI选号程序,在程序的主窗体中安排6个标签,每个标签上显示一个数字,每个数字都在0~9之间变化。
单击窗体上的“停止”按钮使所有数字停止变化。
2、编写一个学校向教师发放工资的应用程序。
学校负责向教师的工资帐户上发放工资,教师从各自的帐户上领取工资。
三、实验步骤:1、设计一个图形界面应用程序,在程序中首先创建一个标签类MyLabel,并使该类实现Runnable接口。
2、MyLabel类中包含两个数据成员:(1)整型数据成员value代表显示在标签上的数字;(2)布尔型数据成员stop,其初始值为false,当其值变为true时,标签上显示的数字停止变化。
3、创建一个框架窗体类ChooseNumber,并向其中添加6个MyLabel类的对象和一个按钮,为了能使6个标签上的数字在程序运行时不停地在0~9之间变化,需实现以下2步:(1)创建6个线程分别控制6个标签上的数字变化;(2)在MyLabel类的run方法中,使用Math类的random方法产生0~9之间的随机整数,并将其显示在标签上,然后使线程对象睡眠500毫秒,然后判断stop的值,如果stop的值为false,则重复上述过程直到其值为true时,退出次循环。
4、程序的参考代码如下:5、以下几步完成本次上机实验的第2个任务。
6、这是一个典型的线程同步问题,如果教师在工资未发放前提取,则应使其进入等待状态。
学校发放工资后会通知教师可以提取。
这里用到了阻塞线程的方法wait和唤醒被阻塞线程的方法notify。
7、程序中创建TeacherAccount类作为教师帐户类,SchoolBank类代表学校,而Teacher类代表教师。
SchoolBank类对象和Teacher类对象有一个共享的TeacherAccount类对象。
第Ⅰ部分:实验指导实验1:Java开发环境J2SE一、实验目的(1)学习从网络上下载并安装J2SE开发工具。
(2)学习编写简单的Java Application程序.(3)了解Java源代码、字节码文件,掌握Java程序的编辑、编译和运行过程。
二、实验任务从网络上下载或从CD-ROM直接安装J2SE开发工具,编写简单的Java Application程序,编译并运行这个程序。
三、实验内容1.安装J2SE开发工具Sun公司为所有的java程序员提供了一套免费的java开发和运行环境,取名为Java 2 SDK,可以从上进行下载。
安装的时候可以选择安装到任意的硬盘驱动器上,例如安装到C:\j2sdk1.4.1_03目录下。
教师通过大屏幕演示J2SE的安装过程,以及在Windows98/2000/2003下环境变量的设置方法。
2.安装J2SE源代码编辑工具Edit Plus教师通过大屏幕演示Edit Plus的安装过程,以及在Windows98/2000/2003操作系统环境下编辑Java 原程序的常用命令的用法。
3.编写并编译、运行一个Java Application程序。
创建一个名为HelloWorldApp的java Application程序,在屏幕上简单的显示一句话"老师,你好!"。
public class HelloWorldApp{public static void main(String[] args){System.out.println("老师,你好!");}}4.编译并运行下面的Java Application程序,写出运行结果。
1:public class MyClass {2:private int day;3:private int month;4:private int year;5:public MyClass() {6:day = 1;7:month = 1;8:year = 1900;9:}10:public MyClass(int d,int m,int y) {11:day = d;12:month = m;13:year = y;14:}15:public void display(){16:System.out.println(day + "-" + month + "-" + year);17:}18:public static void main(String args[ ]) {19:MyClass m1 = new MyClass();20:MyClass m2 = new MyClass(25,12,2001);21:m1.display();22:m2.display();23:}24:}运行结果:1-1-190025-12-2001实验2:Java基本数据类型一、实验目的(1)掌握javadoc文档化工具的使用方法。
Java实验指导书林玲实验一:Java语言综述一、实验目的与要求1、熟悉安装和配置JDK开发环境。
2、熟悉安装和配置IDE开发工具。
3、掌握Java程序编辑、编译和运行的过程。
4、掌握Java程序的构成特点。
5、总结在调试过程中的错误。
二、实验类型验证型三、实验原理及说明通过实际操作,使学生对Java语言的使用有一个更深刻的理解;熟悉Java的开发环境及程序结构。
四、实验仪器安装JDK及Java IDE的计算机若干台五、实验内容和步骤1、下载、安装并设置 Java SDK 软件包。
2、安装 Java IDE软件。
3、编写一个简单的 Java 程序,运行结果为在屏幕上输出“HELLO WORLD!”。
public class Hello{public static void main(String args[]){System.out.println("HELLO WORLD!");}}//4、编写一个Java Applet程序实现功能为:在屏幕上显示“HELLO WORLD!”。
六、注意事项Java源程序文件的命名规则。
七、预习与思考题1、什么是Java虚拟机?它的作用是什么?2、如何在不同的环境下设置环境变量?实验二:Java语言基础一、实验目的与要求1、掌握 Java 基本数据类型、运算符与表达式、数组和字符串的使用方法。
2、掌握各种变量的声明方式。
3、理解 Java 程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法。
4、通过以上内容,掌握 Java 语言的编程规则。
5、了解Java程序文件名和类名的说明方法。
二、实验类型设计型三、实验原理及说明Java语言基础包括数据类型、运算符、表达式、流程控制、数组、字符串等,是类内方法设计实现的基础。
面向对象程序设计的核心是类和类内方法的设计,其中类内方法的设计依然需要传统的面向过程的方法进行。
四、实验仪器安装JDK及Java IDE的计算机若干台五、实验内容和步骤1、编写声明不同数据类型变量的程序文件 Java2_1.java,源代码如下:public class Java2_1{public static void main(String args[]){byte b=0x55;short s=0x55ff;int i=1000000;long l=0xffffL;char c='a';float f=0.23F;double d=0.7E-3;boolean B=true;String S="这是字符串类数据类型";System.out.println("字节型变量 b = "+b);System.out.println("短整型变量 s = "+s);System.out.println("整型变量 i = "+i);System.out.println("长整型变量 l = "+l);System.out.println("字符型变量 c = "+c);System.out.println("浮点型变量 f = "+f);System.out.println("双精度变量 d = "+d);System.out.println("布尔型变量 B = "+B);System.out.println("字符串类对象 S = "+S);}}编译并运行该程序。
1.创建用户界面,一个文本框与两个按钮,“运行”、“停止”。
1)创建线程,运行时显示线程名,随机睡眠0-100ms。
2)文本框输入线程名,点击“运行”时,运行指定线程。
3)点击“停止”时,停止所有线程。
4)(附加题)再添加一个按钮,点击时停止与文本框相符的线程。
2.创建用户界面,一个文本区域、一个文本框与两个按钮,“保存”、“读取”。
1)用Scanner输入布局方式,指定两种不同的布局。
2)文本区域输入文字,文本框输入文件名。
3)点击“保存”时,将文本区域的文字保存到文本框指定文件。
4)点击“读取”时,读取与文本框相符的文件,将内容显示到文本区域。
Tips: 文本框、文本区域等用静态声明,监听、线程等其他类访问时会较为方便。
java实验实验报告Java 实验实验报告一、实验目的本次 Java 实验的主要目的是通过实际操作和编程实践,深入理解和掌握 Java 编程语言的基本概念、语法结构、面向对象编程的思想以及常用类库的使用。
同时,培养我们解决实际问题的能力和编程思维,提高代码的质量和可读性。
二、实验环境1、操作系统:Windows 102、开发工具:IntelliJ IDEA3、 JDK 版本:18三、实验内容(一)基本语法练习1、数据类型与变量在 Java 中,我们学习了不同的数据类型,如整数类型(`int`、`long`)、浮点数类型(`float`、`double`)、字符类型(`char`)和布尔类型(`boolean`)。
通过定义和使用这些变量,我们能够存储和操作各种类型的数据。
```javaint age = 25;double salary = 500050;char grade ='A';boolean isStudent = true;```2、控制结构包括条件语句(`ifelse`、`switch`)和循环语句(`for`、`while`、`dowhile`)。
这些控制结构使我们能够根据不同的条件执行不同的代码块,或者重复执行一段代码。
```javaint num = 10;if (num > 5) {Systemoutprintln("Number is greater than 5");} else {Systemoutprintln("Number is less than or equal to 5");}switch (num) {Systemoutprintln("One");break;case 10:Systemoutprintln("Ten");break;default:Systemoutprintln("Unknown");}for (int i = 0; i < 5; i++){Systemoutprintln(i);}int count = 0;while (count < 3) {Systemoutprintln("Count: "+ count);count++;}count = 0;Systemoutprintln("Count: "+ count);count++;} while (count < 3);```(二)面向对象编程1、类与对象创建了自定义的类来表示现实世界中的实体。
Java实验总结报告Java实验总结报告.Java实验报告在一学期的Java上机实验中,学到了很多书本以外的知识。
同时也遇到了很多难题,在解决问题中加深了对Java知识的认识与学习。
实验一中遇到的问题:环境变量的设置遇到了麻烦。
解决方法:询问老师,查阅书本得以解决。
实验二中遇到的问题:对Java的if和switch语句的运用不熟悉,所以导致实验中程序最初编写的很雍长,繁琐。
解决方法:通过对Java的if和switch语句的深一步学习,逐步学会了它们的灵活运用,从而更便捷地解决问题。
实验三中在学习过C的基础上,运用Java的for、while、do..while语句,并没遇到什么大的麻烦。
实验四中遇到的问题:编写提供三个选项的菜单驱动程序中的选择问题。
解决方法:在实验程序中用的是先判断温度类型,再转换单位。
实验五中遇到的问题:抽奖号码未能解决排序问题。
解决方法:该程序只针对该题是对的,关于排序问题在老师的启发下,自己在实验之外加以尝试,得以成功。
实验六遇到的问题:对成员变量的初始化,没有分步来写。
解决方法:在老师的帮助下重新一个个地初始化。
实验七中遇到的问题:由于一开始的充分准备,没遇到问题,很顺利。
实验八中遇到的问题:不能运行成功。
解决办法:发现是类名与文本名不同,改动之后得以解决。
实验九遇到的问题:shape和Circle包含关系,重复定义,比较繁琐。
解决方法:去掉其一。
实验十遇到的问题:在理解并使用面向对象的特征:多态实验上还算顺利。
实验十一遇到的问题:对线程的基本概念模糊,走了很多弯路。
解决方法:请教同学,参照课本最终才勉强解决了问题。
学习心得与体会:在做完所有实验后,我初步理解并能够操作和使用Java的if和switch,for、while、do..while语句,Java的类、对象和方法,声明、定义和调用方法,理解实参和形参的含义。
学习创建简单类型的数组,并能用循环语句处理数组。
使用统一建模语言(UML)设计类,并实现类。
浙江经贸职业技术学院实训报告系部______________ 班级____________ 姓名____________ 学号_______________日期______________ 地点____________ 指导教师_____________ 成绩实验七JAVA 面向对象编程(3)【实验目的】1.掌握JAVA语言类的定义和使用。
2.掌握JAVA语言对象的声明和使用。
3.掌握JAVA语言构造方法的概念和使用。
4.掌握类及其成员的访问控制符的区别和使用。
【预习内容】1. JAVA 类的定义格式;2.JAVA对象的使用三步骤:声明、创建以及初始化;3.访问控制修饰符:public、private和protected的功能和区别;4.JAVA构造方法的概念和特点;5.JAVA多态的概念,及重载和覆盖的区别;【实验内容及步骤】1.上机验证题1.阅读下面的程序,在main()方法里添加语句完成如下功能:(1)创建一个MyValue类的对象myValue.(2)为myValue对象中的value域赋值10。
(3)使用getVaule()方法获得myValue对象中的数据并将它打印在屏幕上。
class MyValue {private int value;public void setValue(int x) {value = x;}public int getValue() {return value;}}public class UseValue {public static void main(String args[]) {MyValue myvalue = new MyValue();myvalue.setValue(10);System.out.println(myvalue.getValue());}}[程序运行过程]2.(1)程序功能:通过LX7_1_P类产生子类LX7_2,其不仅具有父类的成员变量xm(姓名)、xh(学号),还定义了新成员变量xy(学院)、xi(系)。
实验一:实验目的●学习下载最新版本的JDK。
●学习安装与设置JDK运行环境。
●解决JDK开发环境配置中的常见问题。
实验二:实验目的●了解Java应用程序的结构。
●学习Java应用程序源程序的编辑。
●学习Java源程序的编译。
●学习Java应用程序的运行。
●学习解决Java源程序编译过程中的常见问题。
实验要求编写一个比较简单的Java应用程序,该程序将会在命令提示符窗口下输出一句话:Java 世界欢迎你!实验三:实验目的●了解Java小程序的结构。
●学习Java小程序的编译、运行。
●了解Html语言中的Applet标签。
实验四:实验目的●学习标识符的命名规则。
●学习基本数据类型变量的声明。
●学习基本数据类型变量的初始化。
●明确局部变量使用前初始化的意义。
●学习常量的使用。
实验要求编写一个Java 程序,在程序中声明各种基本数据类型的变量,对它们进行初始化,再显示它们各自的值;定义一个双精度数据类型的常量,并显示它的值。
实验五:实验目的●学习算术运算符中的求模运算。
●学习算术运算符中的自增运算。
●学习算术运算符中的自减运算。
实验要求编写一个Java 程序,在程序中进行求模运算、自增和自减运算。
实验五:实验目的●学习算术运算符中的求模运算。
●学习算术运算符中的自增运算。
●学习算术运算符中的自减运算。
实验要求编写一个Java 程序,在程序中进行求模运算、自增和自减运算。
实验六:实验目的●学习算术运算符中的整数除法。
●学习算术运算符中的浮点数除法。
●学习算术运算符中的整数与浮点数混合除法。
实验要求编写一个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中出现时编译器的提示信息是怎样的。
实验7
多线程程序设计
一、实验目的:
1、理解多线程程序运行的基本原理。
2、掌握多线程程序设计的基本方法。
3、学习多线程的同步机制,掌握利用同步机制访问共享资源的方法。
二、实验任务:
1、编写一个GUI选号程序,在程序的主窗体中安排6个标签,每个标签上
显示一个数字,每个数字都在0~9之间变化。
单击窗体上的“停止”按
钮使所有数字停止变化。
2、编写一个学校向教师发放工资的应用程序。
学校负责向教师的工资帐户
上发放工资,教师从各自的帐户上领取工资。
三、实验步骤:
1、设计一个图形界面应用程序,在程序中首先创建一个标签类MyLabel,
并使该类实现Runnable接口。
2、MyLabel类中包含两个数据成员:
(1)整型数据成员value代表显示在标签上的数字;
(2)布尔型数据成员stop,其初始值为false,当其值变为true时,标签上
显示的数字停止变化。
3、创建一个框架窗体类ChooseNumber,并向其中添加6个MyLabel类的对
象和一个按钮,为了能使6个标签上的数字在程序运行时不停地在0~9
之间变化,需实现以下2步:
(1)创建6个线程分别控制6个标签上的数字变化;
(2)在MyLabel类的run方法中,使用Math类的random方法产生0~9之
间的随机整数,并将其显示在标签上,然后使线程对象睡眠500毫秒,
然后判断stop的值,如果stop的值为false,则重复上述过程直到其
值为true时,退出次循环。
4、程序的参考代码如下:
5、以下几步完成本次上机实验的第2个任务。
6、这是一个典型的线程同步问题,如果教师在工资未发放前提取,则应使
其进入等待状态。
学校发放工资后会通知教师可以提取。
这里用到了阻塞线程的方法wait和唤醒被阻塞线程的方法notify。
7、程序中创建TeacherAccount类作为教师帐户类,SchoolBank类代表学校,
而Teacher类代表教师。
SchoolBank类对象和Teacher类对象有一个共享的TeacherAccount类对象。
8、调用共享对象的wait方法,可以使当前线程进入阻塞状态。
直到其他线
程调用该对象的notify方法才能唤醒被阻塞的线程。
9、同时程序中使用关键字synchronized使不同线程同步地访问共享(临界)
资源。
程序的参考代码如下,同学们也可以自行编程实现类似的功能。
四、本次实验难点:
对线程同步访问共享资源的控制方法是本次实现的重点和难点。