JAVA实验4
java实验报告4

实验4 Java 语言面向对象基础编程一.实验目的(1)通过编程和上机实验理解Java语言是如何体现面向对象编程基本思想(2)如何创建类和对象二、实验要求1、编写一个体现面向对象思想的程序;2、编写一个创建对象和使用对象的方法的程序;3、编写体现构造方法重载的程序;三.实验内容1、定义类创建类对象设计类来描述真实客观世界中的事物,使用类的成员变量来表示事物的属性和状态,使用类的成员方法来提供对成员变量的访问或修改(1)程序功能:设计一个用来描述汽车的类,使用类的非静态成员变量来表示汽车的车主姓名、当前的速率和当前方向盘的转向角度,使用类的非静态成员方法来表示改变汽车的速率和停车两个操作。
源代码:(自己编写)创建类的对象,使用对象的方法(类的非静态方法)来访问或修改对象的变量(类的非静态变量)(1)创建上面第一步的类的对象,在调用类的构造函数时指定对象的变量的初始值,以后再使用对象的方法来访问或修改对象的变量的值。
源代码:2、构造方法重载构造方法的名称和类同名,没有返回类型。
尽管构造方法看起来和一般的成员方法没有差别,但它不是方法,也不是类的成员。
因此,构造方法不能直接调用,只能由new 操作符调用。
构造方法对于类是十分重要的,对象的初始化任务要靠构造方法来完成。
重载构造方法的目的是提供多种初始化对象的能力,使程序员可以根据实际需要选用合适的构造方法来初始化对象。
源代码如下:class RunDemo {private String userName, password;在该处编写不带参数的构造方法在该处编写带一个参数的构造方法在该处编写带两个参数的构造方法}public class EXP2 {public static void main(String[] args) {//使用不同的构造方法进行对象的初始化}}3、调用方法时参数传递的练习在Java 中,方法中的参数传递可以分为传值调用或对象方法调用等方式。
西南科技大学JAVA实验四实验报告

面向对象程序设计A(Java)实验报告实验名称:GUI实验实验类型:设计型指导教师:**专业班级:信安1205*名:**学号:**********实验地点:东六E501实验成绩:日期:2016年11月12日实验四 GUI实验一、实验目的练习Java图形用户界面设计、界面布局、事件设计方法,熟悉GUI 程序设计的基本技术、基本Widget的使用、GUI设计用户接口的方法二、实验内容设计一个类似Windows计算器的Application应用程序三、实验设计1、采用Java Application方式建立应用程序Calculator的框架2、仿照Windows计算器,实现界面设计。
将contentPane分成两个jPanel(borderlayout),其中一个放置文本框,另一个继续划分为两部分,分别以FlowLayout和GridLayout的形式放置按钮。
设置按钮、文本框等的Text值及相应属性的修改。
3、设计方法:设两个变量value1、value2分别存储运算符左右两个操作数,设置标识符flag,初值为0,此时输入的数传给value1,当按下+-*\时设置flag为1,此时输入的数字传给value2;按下”=”时,根据value1,value2及op值进行计算并输出至文本框4、设计方法调节程序bug5、点击事先设计的计算器数字按钮,显示框出现相应数字;点击“+-*/”时,显示框出现相应字符;输入计算式后再输入“=”,显示框出现计算结果,基本实现Windows计算器功能四、实验过程1、采用Java Application方式建立应用程序框架2、仿照Windows计算器,利用多种布局方式实现界面设计3、组装操作数和运算符,完成简单的整数加、减、乘、除运算4、通过getTxt()方法来获得显示框txt内容,setTxt()方法把字符显示在Txt框内;通过Integer.parseInt(String)实现字符串到整型的转换,String.valueOf(Int)实现整型到字符串的转换。
java实验四

成绩:大连工业大学艺术与信息工程学院《Java技术》实验报告实验四专业名称:计算机科学与技术班级学号:2009030236学生姓名:普辉指导老师:姜绍俊实验日期:2011.07.1一、实验目的:熟悉Java基本的java编程,了解java语言中构造方法的使用。
掌握按钮的使用。
掌握继承性。
二、实验内容:import java.awt.BorderLayout;import java.awt.Container;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;class J_ActionListener implements ActionListener{int m_count = 0;public void actionPerformed(ActionEvent e){JButton b= (JButton)e.getSource( );b.setText("单击" + (++m_count) + "次");} // 方法actionPerformed结束} // 类J_ActionListener结束public class J_Button1 extends JFrame{public J_Button1( ){super( "动作事件例程" );Container c = getContentPane( );JButton b = new JButton("单击0次");J_ActionListener a = new J_ActionListener( );b.addActionListener(a);c.add(b, BorderLayout.CENTER);} // J_Button1构造方法结束public static void main(String args[ ]){J_Button1 app = new J_Button1( );app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);app.setSize( 100, 80 );app.setVisible( true );} // 方法main结束} // 类J_Button1结束三、实验步骤:1,编写java源代码2,运行java编译环境3,运行结果四、实验结果:五、实验总结:通过对java的学习,我了解了运行java程序的基本步骤。
java实验报告4

实验报告_实验4 常用类(学生学号_姓名) 一、实验目的1.掌握String类的基本构造方法和常用方法的使用;2.熟悉StringBuffer类的追加、插入、查找、替换、删除等操作;3.熟悉Math类常量及常用方法的调用;4.熟悉包装类的功能、重要属性、主要构造器和常用方法;5.了解StringTokenizer类的一般使用。
二、实验内容与步骤1、(基础题)运行下列程序,并回答问题:(1) 对于String对象来说,“==”运算符与equals( )方法的功能有什么不同?“==”运算符比较两个字符串引用是否指向同一个对象。
equals( )方法在于比较两个字符串的内容是否完全相同。
(2) s1和s2是否指向同一对象?为什么?是,因为s1和s2是字符串常量,如果用户创建了一个字符串常量,系统首先会在字符串池中查找有无相同内容的字符串存在,若有就把原有取出使用,若无则重新生成,故s1和s2指向同一对象。
(3) s3和s4是否指向同一对象?为什么?不是,用构造器生成的字符串对象,它会在堆中生成一个对象,很明显s3和s4指向了不同的对象。
(4) s1==s3是否成立?为什么?不成立,“==”运算符比较两个字符串引用是否指向同一个对象。
很明显s1和s3指向了不同的对象。
(5) s1、s2、s3、s4的内容是否相同?是(6) compareTo( )方法的功能是什么?当比较结果分别为负数、正数、0 时,代表什么含义?pareTo(Str2);其返回的是一个int类型值。
若Str1等于参数字符串Str2字符串,则返回0;若该Str1按字典顺序小于参数字符串Str2,则返回值小于0;若Str1按字典顺序大于参数字符串Str2,则返回值大于0。
2、(基础题)根据程序注释,将所缺代码补充完整,然后运行程序:程序所缺代码:String str = new String("*****************.cn");System.out.println("字符串的长度: " + str.length()); // 输出字符串的长度System.out.println("字符串的首字符: " + str.charAt(0));// 输出字符串的首字符System.out.println("字符\'@\'的索引号(即下标): " + str.indexOf('@'));System.out.println("该邮箱的顶级域名(即最后一个单词): " + str.substring(stIndexOf('.')+1));System.out.println("字符串全部以大写方式输出为: " + str. toUpperCase());3、(基础题)根据程序注释,将所缺代码补充完整,再运行程序::程序所缺代码StringBuffer sb= new StringBuffer(“里约热内卢奥运会举行时间:”);sb.append(“8月8日晚8点”); // 在sb尾部追加"8月8日晚8点"字符串sb.insert(sb.length()-1,” 8月5日-21日”); //在sb尾部追加"8月5日-21日"字符串sb.replace(n, n+5,"第31届"); // 将字符串中"里约热内卢"替换为"第31届"System.out.println("字符串的长度为: "+ sb.length());// 输出字符串的长度sb.delete(12,25); // 删除字符串中从第12个字符开始到第25个字符为止的内容。
Java语言程序设计A实验4:异常处理

实验课程名称:Java语言程序设计A第二部分:实验过程记录(可加页)(代码、运行结果、实验中出现的问题及解决过程)修改后代码如下:import java.util.*;class ExceptionDemo{public static void main(String[] args) {try {Scanner scanner = new Scanner(System.in);System.out.print("Enter a interger:");int number = scanner.nextInt();System.out.println("The number entered is:" + number);} catch (InputMismatchException e) {System.err.println("输入有误,请重新输入一个整型数据!");new ExceptionDemo().main(args);;}}}运行结果如下:教师签字__________第三部分结果与讨论(可加页)一、实验结果分析(包括数据处理、影响因素讨论、综合分析和结论等)首先运行题目中给出的代码,当输入的数据不是整形时,程序抛出InputMismatchException错误并终止,之后用try……catch捕捉并处理该错误,在catch块中输出错误提示并且重新调用main方法,已达到程序正常运行直达用户输入整数后才退出的目的。
实验中通过main函数的回调,实现了和使用循环处理一样的效果,也可以通过for循环或者do……while循环实现同样的效果,例如以下用for循环的实现:import java.util.*;class ExceptionDemo{public static void main(String[] args) {for (; ; ) {try {Scanner scanner = new Scanner(System.in);System.out.print("Enter a interger:");int number = scanner.nextInt();System.out.println("The number entered is:" + number);// break;} catch (Exception e) {System.err.println("输入有误,请重新输入一个整型数据!\n");}}}}运行效果为:二、小结、建议及体会编程的时候要多考虑一些影响因素,多思考几种实现方法,在各种方法中寻找最优的方案,同时,对于碰到的问题,不要忽略,要多多思考本质的原因,避免下次犯同样的错误。
java第四次实验报告

this.year = year;
this.day = day;
}
public void ChangeToDate(Date1 date) {
String Month[] =
{
"January","Februry","March", "April", "May","June",
{"drove","jumped","ran","walked","skiped"},
{"to","from","over","'under","on"},
{"the","a","one","some","any"},
{"boy","girl","dog","town","car"} };
TextArea output;
Button m;
int b,c;
public void init() {
output=new TextArea(25,50);
m=new Button("开始");
add(output);
add(m);
}
public boolean action(Event e,Object o){
output.setText ("");
实验报告 Java输入、输出和异常处理

实验四Java输入、输出和异常处理一、实验目的1.了解I/O流的使用;2.掌握常见的输入/输出流类及其主要方法。
3.熟悉S y s t e m类,掌握标准输入/输出。
4.学会利用Tr y-c a t c h-f i n a l l y语句来捕获和处理异常;5.掌握自定义异常类的方法。
二、实验要求1.使用标准数据流的应用程序。
2.使用文件输入输出流的应用程序。
3.通过编程理解系统异常处理的机制和创建自定义异常的方法。
三、实验内容(一)使用标准数据流的应用程序标准数据流指在字符方式下(如D O S提示符)程序与系统进行输入输出的方式,键盘和显示器屏幕是标准输入输出设备,数据输入的起点为键盘,数据输出的终点是屏幕,输出的数据可以在屏幕上显示出来。
1.程序功能:将键盘上输入的字符在屏幕上显示出来。
2.编写S Y4_1.j a v a程序文件,源代码如下:c l a s s S Y4_1{p u b l i c s t a t i c v o i d m a i n(S t r i n g[]a rg s)t h r o w s j a v a.i o.I O E x c e p t i o n {b y t e b u ff e r[]=n e w b y t e[10];S y s t e m.o u t.p r i n t l n("从键盘输入不超过10个字符,按回车键结束输入:");i n t c o u n t=S y s t e m.i n.r e a d(b u f f e r);//读取输入的字符并存放在缓冲区b u ff e r中S y s t e m.o u t.p r i n t l n("保存在缓冲区b u ff e r中元素的个数为:"+c o u n t);S y s t e m.o u t.p r i n t l n("b u f f e r中各元素的值为:");f o r(i n t i=0;i<c o u n t;i++){S y s t e m.o u t.p r i n t(""+b u ff e r[i]);//在屏幕上显示b u ff e r 元素的值}S y s t e m.o u t.p r i n t l n();S y s t e m.o u t.p r i n t l n("输出b u ff e r字符元素:");S y s t e m.o u t.w r i t e(b u ff e r,0,b u f f e r.l e n g t h);}}3.编译、运行S Y4_1.j a v a文件。
java_实验四

武汉工程大学计算机科学与工程学院实验报告[4]一、实验目的1)了解Java.awt包及Swing的新增特性。
2)了解Java系统图形用户界面的基本工作原理和界面设计的步骤。
3)了解图形用户界面的事件响应机制。
4)了解图形用户界面各种常用的基本组件的使用方法及其事件响应。
5)掌握Java常用组件的应用6)掌握图形用户界面各种布局策略的设计与使用二、实验要求1)创建一个简单的图形用户界面。
2)使用Java类库中提供的组件,并添加到图形用户界面中。
3)通过Java事件处理机制,实现与用户的交互信息。
4)练习使用布局管理器5)使用Java类库中提供的组件,并添加到图形用户界面中6)通过Java事件处理机制,实现与用户的交互信息三、实验内容对一个优秀的应用程序来说,良好的图形用户界面是必不可少的。
因为只有通过图形界面,用户才能够与程序友好的交互。
缺少良好的图形用户界面,将会给用户理解和应用程序带来很多不便。
创建一个完整的图形用户界面的应用程序大致流程如下:1)引用需要的包和类。
2)设置一个顶层的容器。
3)根据需要为容器设置布局管理器或使用默认布局管理器。
4)将组件添加到容器内,位置自行设计。
5)为响应事件的组件编写事件处理代码。
下面我们先建立一个简单的图形用户界面,然后通过合适的布局管理器,将各种常用组件添加到图形用户界面中,实现与用户的交互信息。
1. 创建简单的图形用户界面(1)创建简单的 Frame 框架在 AWT 库中,对应于框架的类是 Frame,在 Swing 库中,相应的类是 JFrame。
JFrame 类扩展了 Frame 类。
大部分 ATWT 组件在 Swing 中都有等价的组件,它们在表示形式上差一个“J”。
框架是一个容器,可以在这个容器中放入其他一些图形用户界面组件,如按钮、菜单等,从而组成一个功能完善的程序。
下面的例子是建立一个 Frame 框架,通过这个例子学习如何创建一个简单的图形用户界面。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
this.setSize(350, 150); font = new Font("TimesRoman",Font.CENTER_BASELINE,45); }
实验项目名称: Java 高级编程 实验学时:
6
同组学生姓名:
———— 实验地点: 1514/A203
实验日期: 2016.5.13/5.25/5.27 实验成绩:
批改教师:
王倩倩
批改时间:
一、实验目的和要求
(1)了解文件的概念和文件对象的创建方法; (2)掌握使用文件输入输出流读写文件的方法; (3)了解线程的基本概念和多线程程序设计的基本方法; (4)掌握数据库连接的方法; (5)创建 SQL 查询并更新数据库中的信息; (6)调试程序要记录调试过程中出现的问题及解决办法; (7)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经 验; (8) 做完实验后给出本实验的实验报告。
} catch(IOException ex) {
JOptionPane.showMessageDialog(null, "IO异常,合并\""+filename+"\"文件 未成功");
} } public static void main(String args[]) {
mergefile mf=new mergefile(); mf.merge("f:\\tex1.txt", "f:\\tex2.txt","f:\\tex3.txt"); mf.sort("f:\\tex3.txt"); } } 第 2 题实验代码: package shiyan4_2; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import javax.swing.JOptionPane; import shiyan4_1.mergefile; public class iskeyword { public iskeyword() { } public boolean judgekeyword(String filename) { try {
public int ct; public mergefile() {
} public void merge(String filename1,String filename2,String filename3) {
try {
FileInputStream fin1=new FileInputStream(filename1); FileInputStream fin2=new FileInputStream(filename2); FileOutputStream fout3=new FileOutputStream(filename3,true); byte buffer[]=new byte[512]; int count=0; while((count=fin1.read(buffer))!=-1) {
{ return true;
} else
{ return false;
} } catch(FileNotFoundException ex) {
JOptionPane.showMessageDialog(null, filename+"文件不存在,不能合并 ");
} catch(IOException ex) {
fin2.close(); fout3.close(); } catch(FileNotFoundException ex) { JOptionPane.showMessageDialog(null, filename1+"文件不存在,不能合 并。"); } catch(IOException ex) { JOptionPane.showMessageDialog(null, "IO异常,合并 \""+filename1+filename2+"\"文件未成功"); }
System.out.println("有关键字"); } else {
System.out.println("没有关键字"); } } } 第 3 题实验代码: package shiyan4_3;
public class DelayPrintThread extends Thread {
int sleepTime; public DelayPrintThread() {
} } 第 4 题实验代码: package shiyan4_4;
import java.applet.Applet;
class MultiThreadApplet extends Applet implements Runnable {
public void run() { } }
package shiyan4_4; import java.awt.*; import java.util.*; public class Clock extends MultiThreadApplet {
JOptionPane.showMessageDialog(null, "IO 异常,文件未成功"); } } public static void main(String args[]) { iskeyword kk=new iskeyword(); if(kk.judgekeyword("f:\\keyword.txt")) {
this.ct=count; fout3.write(buffer,0,count); } fin1.close(); while((count=fin2.read(buffer))!=-1) { this.ct+=count; fout3.write(buffer,0,count); } System.out.print("&"+this.ct);
} fin.close(); FileOutputStream fout=new FileOutputStream(filename,false); for(int i=0;i<temp.length;++i) {
for(int j=0;j<temp.length-i-1;++j) {
if(temp[j]>temp[j+1]) {
FileInputStream fin=new FileInputStream(filename); byte buffer[]=new byte[512]; int count=0,ct=0; while((count=fin.read(buffer))!=-1) {
ct=count; } fin.close(); FileInputStream fin2=new FileInputStream(filename); byte tt[]=new byte[ct]; while((count=fin2.read(tt))!=-1) {
(建议程序中适当添加注释信息,增强可读性;较长程序可分栏书写,保证报告排版整洁美 观。) 第 1 题实验代码: package shiyan4_1; import java.io.*; import javax.swing.JOptionPane;
public class mergefile //extends FilterInputStreanm implements DateIput {
要求:
(1)注意选用适当的文件流进行文件读写; (2)学会两种创建线程的方法,并比较使用场合; (3)养成良好的编程习惯,严格按照命名规则为包、类及类成员命名,将每个程序打包,包 的命名方式如 four.num1 表示实验四的第一题; (4)学会查阅 Java API 文档,如查找常用工具类。
程序清单:
ct=count; } fin.close();//对于输入流打开的时候再次打开会有影响,而且要知道到底读 入多少字节,还需要进行两次读写。 String str="abstract"; System.out.println(str); String temp= new String(tt);//将字符数组转换成字符串 System.out.println(temp.length()); if(str.equals(temp))
}
public void sort(String filename) {
try {
byte temp[]=new byte[ct]; int count=0; byte t; FileInputStream fin=new FileInputStream(filename); while((count=fin.read(temp))!=-1) {
二、实验仪器和设备
奔腾以上计算机,Windows 操作系统,装有 JDK1.7 和 Eclipse 软件,Access 数据库。
三、实验过程
(1)使用文件字节输入/输出流,合并两个指定文件;当文件中的数据已排序时,合并后的 数据也要求是已排序的。 (2)将 Java 的关键字保存在一个文本文件中,判断一个字符串是否为 Java 的关键字。 ( 3 ) 编 写 在 构 造 方 法 中 产 生 一 个 1-5 之 间 的 随 机 数 的 继 承 Thread 类 的 线 程 类 DelayPrintThread,使得线程体每休眠此随机数时间就打印输出线程号和休眠时间;另外编 写应用 DelayPrintThread 类的 Java 应用程序 TwoThread.java,在 main()方法中创建两个 线程,并应用 sleep()控制主应用程序延迟一段时间。 (4)编写继承 Runnable 接口的 Applet 多线程小程序类 MultiThreadApplet,编写继承该 类的 Applet 小程序类 Clock,在 Clock 中重新构造父类的 run()方法,实现数字时钟的功能, 要求不断刷新显示时、分、秒。