java程序设计语言(new)实验指导书.doc_第1页
java程序设计语言(new)实验指导书.doc_第2页
java程序设计语言(new)实验指导书.doc_第3页
java程序设计语言(new)实验指导书.doc_第4页
java程序设计语言(new)实验指导书.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

面向对象程序设计实验指导书电子商务教研室辽宁工业大学2011年9月目 录实验一 Java语言基础1实验二 类与对象6实验三 语言基础类库与异常处理14实验四 Java的I/O编程21实验五 图形及图形处理27实验六 Applet编程31实验七 JDBC编程33辽宁工业大学面向对象程序设计语言实验指导书实验一 Java语言基础一、实验目的1 本实验主要验证Java语言基础:数据、表达式、语句等。2 Java环境的配置。二、实验原理及方法1、JDK开发工具简介在JDK的bin目录下,存放着Java 2提供的一些可执行程序,为我们开发和测试Java程序提供了工具。在我们的学习中,常用的JDK开发工具有如下几种:(1)javac.exe:Java语言的编译器。(2)java.exe:Java程序执行引擎。(3)appletviewer:小应用程序浏览器。2、Java程序开发步骤开发一个Java程序由三个步骤:2.1编辑 :使用任何的文本编辑器编辑Java源程序文件。Java源程序文件的扩展名为java。2.2编译:打开MS-DOS窗口,进入源程序所在目录。然后键入命令:javac filename.java 其中,filename.java表示要编译的源程序文件名。代表回车。将源程序编译成字节码文件。字节码文件的扩展名为class。2.3运行: Java程序有两种类型-Application和Applet。对于Application,打开MS-DOS窗口,进入Java字节码文件所在目录,在命令行状态下执行 java filename 对于Applet,可以将Applet字节码文件加入到一个网页(HTML文件),然后用浏览器打开该网页,Applet的运行结果就会在浏览器窗口中显示出来。我们也可以在命令行状态下执行appletviewer来查看网页,同样会看到Applet的运行结果。JDK开发工具包可以免费下载。下载网址3、配置环境变量平台为 Window 98 时,需要修改系统根目录下的autoexec.bat文件。使用记事本或任何文本编辑器打开文件autuexec.bat,在该文件的最后增加如下两行SET PATH=%PATH%;c:jdk1.4.1_02binSET CLASSPATH=.;c:jdk1.4.1_02lib其中,环境变量path和classpath分别指定了JDK命令搜索路径和Java类路径。在这里我们假设JDK安装在C: jdk1.3.1_02目录下,JDK的所有命令都放在c:jdk1.3.1_02bin目录下。设置环境变量path的作用是使DOS操作系统可以找到JDK命令。设置环境变量classpath的作用是告诉Java类装载器到哪里去寻找第三方提供的类和用户定义的类。JVM和其它JDK工具通过依次搜索平台库、库扩展和类路径来查找类。平台为Win2k时,需修改系统变量对应内容如果用户在安装jdk1.3.1时,选择了另外的JDK安装路径,则环境变量path和classpath要作相应的调整。三、实验仪器及材料 操作系统:Win2k; 编辑工具:Jbuilder9;四、实验内容 验证第一个程序,输出字符串:“Hello World”,思考Java程序结构;代码如下:public class MyHello /* * param args */public static void main(String args) / TODO Auto-generated method stubSystem.out.println(Hello world); 有类Caculator(计算器类),有属性:所有者(String owner),有方法isPrime(int x)测试一个数是不是素数,代码如下:public class Caculator public String owner; public boolean isPrime(int x) boolean flag=true; for(int i=2;i=60)System.out.println(行车速度太快,容易造成事故);/如果要求的车速太快,则机动车自动以40单位速度行驶driveSpeed=40;else System.out.println(你在安全行驶速度内行驶);driveSpeed=speed; 5、在以下程序中出现了属性的覆盖,编译运行下面程序,掌握产生属性覆盖时属性的变化规则public class Fatherint a=100;public void miner()a-;public static void main(String arg)Father x=new Father();Son y=new Son();System.out.println(a of son is : +y.a);System.out.println(a of sons super is : +y.getA();y.miner();System.out.println(a of son is :+y.a);System.out.println(a of sons super is : +y.getA();class Son extends Father int a=0; public int getA()return super.a;选作题目:1读以下程序,判断程序的运行结果,给打* 的语句写上注释,掌握方法的重载与覆盖 class Cleanserprivate String s=new String(Cleaner);* public void append(String a)s=s+ +a ;public void dilute()append(dilute();*public void apply()append(apply();public void scrub()append(scrub();public void print()System.out.println(s);public static void main(String args)Cleanser x=new Cleanser();x.dilute();x.apply();x.scrub();* x.print();public class Detergent extends Cleanserpublic void scrub()* append(Detergent.scrub(); super.scrub(); * public void foam()append(foam();public static void main(String arg)Detergent x=new Detergent();System.out.println(Subclass has :);* x.dilute();* x.scrub();x.foam();* x.print();System.out.println(Super class has:); * Cleanser.main(arg);2创建一个汽车类(Car),为其定义两个属性:颜色和型号,为该类创建两个构造函数:第一个为无形参的构造函数,其过程是将颜色和型号初始化为红色、轿车第二个须定义两个形参,并将形参的值分别赋给颜色和型号,为该类创建两个方法,分别用来显示颜色和型号。创建一个(Car1)类,让其继承Car类,并且在该类中再定义一个属性(生产厂商),为该类创建三个构造函数:第一个构造函数须定义三个形参,在这个构造函数中要调用Car类的第二个构造函数,将前两个参数赋给该构造函数,第三个参数用来给生产厂商赋值。第二个构造函数带一个形参,把该参数值赋给颜色属性,并将生产厂商属性初始化为“上海大众”第三个构造函数无形参,在该构造函数中要求能调用上面所建的第二个构造函数在该类中定义一个main()方法,分别用上面的三个构造函数创建三个对象,并显示相关对象的各个属性3、阅读下面的程序,程序中黑体字的那一条语句进行拆分,要求连着三次运行increment()方法,最后再运行print()方法,掌握this的使用方法public class Testthisprivate int i=0;/Testthis int increment()i+;return this;void print()System.out.println(i=+i);public static void main (String args)Testthis x=new Testthis();x.increment().increment().increment().print();5阅读下面的程序,找出错误,并将其改正,掌握对象间关系的转换class SuperClassprivate int x=100;public int getx()return x;class Subbie extends SuperClassprivate int y=200;public int gety() return y;public class ObjectConvertpublic static void main(String arg)SuperClass superA=new SuperClass(),superB;Subbie subA=new Subbie(),subB;(new ObjectConvert().useSubAsSuper(subB);superB=subA;System.out.println(superA.getx():+superB.gety(); System.out.println(superA.getx():+superb.y);subB=superB; System.out.println(subB.getx()+ +subB.gety(); System.out.println(subB.x+ +subB.y);public void useSubAsSuper(SuperClass x)System.out.println(x.gety()+!);6定义一个复数类,可以通过构造函数给复数对象赋值,实部和虚部是该类的私有属性,必须有获取和修改属性的方法,并定义它与复数、实数相加和相减及复数间乘、除的方法7以电话为父类,移动电话和固定电话为两个子类,并使移动电话实现接口:可移动。固定电话又有子类:无绳电话。定义及实验各类,明确他们的继承关系五、分析整理实验数据,写出实验报告六、思考题 对比普通方法的重载与构造方法的重载?。实验三 语言基础类库与异常处理一、实验目的1本实验主要验证Java提供的基本类库的功能与作用。2理解错误处理的技术。二、实验原理及方法1.异常处理的一般格式:正常程序和出错处理分离开来try Java statement;catch(ExceptionType1 ExceptionObject) Exception1 handling; catch(ExceptionType2 ExceptionObject) Exception2 handling;.finally final handling; / (统一的出口,最终必定要执行)2.把异常传播给堆栈,沿着被调用的顺序往前寻找,只要找到符合该异常种类彻底异常处理程序,就交给这部分程序去处理.3.异常可以人为地抛出,用throw new 语句4.异常可以是系统已经定义好的,也可以是用户自己定义的5.用户自己定义的异常一定继承自Throwable或Exception类三、实验仪器及材料 操作系统:Win2k; 编辑工具:Jbuilder9;四、实验内容1指出下列程序当中的错误,改正程序,并上机验证(1)public class Exercise1int i;public static void main (String args)System.out.println(i=+i); (2) public class Excercise2public static void main(String args)int i=10;short j;int k=j;j=i;System.out.println(j); (3) public class Exercise3public static void main(String args)int i;System.out.println(i); (4) public class Exercise4public static void main(String args)int i,j;boolean k;k=i&j;System.out.println(k);2编程实现以下功能(选作其中一项):1)现在有一个文件名:TestString.class 试着编写一个小程序取出这个文件的扩展名,并在屏幕上显示2) 过键盘输入一个字符串,判断每一个字符,如果是小写字母,将其转换为大写,如果是大写则转换为小写;如果是数字,转换为“0”;其他字符转换为”#”;将转换后的字符串在屏幕上显示(以下程序可实现键盘输入功能)import java.io.*;public class ReadInpublic static void main(String args)String s=new String();try BufferedReader br = new BufferedReader(new InputStreamReader(System.in); s = br.readLine();catch(Exception e)3)使用Math类的random方法产生一个随机数,将其转换为字符串,取小数点后三个字符,得到一个“0.xxx”的字符串,再将其转换成double型,对这个数据进行相关计算,使其取值范围在0200之间,最后分别调用Math 类的ceil、floor 、sqr等方法,并显示结果3在定义银行类时,若取钱数大于余额则作为异常处理(InsufficientFundsException).思路:产生异常的条件是余额少于取额, 因此是否抛出异常要判断条件取钱是withdrawal方法中定义的动作,因此在该方法中产生异常.处理异常安排在调用withdrawal的时候,因此withdrawal方法要声明异常,由上级方法调用要定义好自己的异常类class Bank double balance; public void deposite(double dAmount) if(dAmount0.0) balance+=dAmount; public void withdrawal(double dAmount) throws InsufficientFundsException if (balancedAmout) throw new InsufficientFundsException(this,dAmount); balance=balance-dAmount; public void show_balance() System.out.println(The balance is +(int)balance);public class ExceptionDemo public static void main(String args) try Bank ba=new Bank(50); ba.withdrawal(100); System.out.println(“Withdrawal successful!”); catch(Exception e) System.out.println(e.toString(); public class InsufficientFundsException extends Exception private Bank excepbank; private double excepAmount; InsufficientFundsException(Bank ba, double dAmount) excepbank=ba; excepAmount=dAmount; public String excepMesagge() String str=“The balance”+ excepbank.showBalance()+ “The withdrawal was”+excepAmount; return str; 5创建一个Example类,该类有一个result() 方法,在result()方法内部有两个多项式A=4x-4 、 B=2*x*x-4*x*y+y*y;C=A/B ,最后返回C的值要求:x和y的值作为该方法的形参,在计算C值以前,先判断A和B的值,当A或B等于零时抛出一个ArithmeticException异常,使用ArithmeticException捕获该异常,在创建ArithmeticException异常时须使用其带形参的构造函数,给形参赋值为“A 或 B =0”,使用getMessage()显示该字符串。当A、B都不等于零时抛出一个Exception异常,使用Exception捕获该异常,在创建Exception异常时也须使用其带形参的构造函数,给形参赋值为“program is ok!”,使用getMessage()显示该字符串最后不管A、B是否等于零,都须显示”program is end”(注:使用finally)为这个类创建一个main()方法,生成两个20以内的整形随机数,调用result()方法,将这两个随机数赋给x和y.,显示最后结果。五、分析整理实验数据,写出实验报告六、思考题 有了子类的继承,是否可以用子类代替所有父类的使用?实验四 Java的I/O编程一、实验目的1描述和使用java.io包的流式思想2构造文件和过滤器流,并恰当地使用它们3区别流与读者和作者,并进行合适的选择4考察并操作文件和目录5读、写和更新文本和数据文件一、 实验原理及方法基本的流类在java.io包中定义了一些流类。下图表明了包中的类层次。一些更公共的类将在后面介绍。读者和作者三、实验仪器及材料 操作系统:Win2k; 编辑工具:Jbuilder9;四、实验内容 1 输入输出方法,验证如下程序public class ReadHello public static void main(String args) char inchar; System.out.println(“Enter a character:”); try inChar=(char)System.in.read(); Syste.out.println(“ “+ inChar); catch(IOException e) Sytem.out.println(“Error reading from user”); 2import java.io.*;class IOTest public statics void main(String args) try byte bArray=new byte128; System.out.println(“Enter something:”); System.in.read(bArray); System.out.print(“You entered:”); System.out.println(bArray); catch(IOException ioe) System.out.println(ioe.toString(); 为什么输入的是字符,输出是乱码?2 输入输出流的基类3 File I/O,验证如下程序 import java.io.*; class filestream public static void main(String args) try File inFile=new File(”file1.txt); File outFile=new File(”file2.txt); FileInputStream fis=new FileInputStream(inFile); FileOutputStream fos=new FileOutputStream(outFile); int c; while(c=fis.read()!=-1) fos.write(c); fis.close(); fos.close();catch(FileNotFoundException e) System.out.println(FileStreamsTest: +e);catch(IOException e) System.err.println(FileStreamsTest: +e);6.3 File I/O增加缓冲区流,减少访问硬盘的次数,提高效率缓冲区流:BufferedInputStream和 BufferedOutputStream将它们与文件流相接FileInputStream in=new FileInputStream(“file1.txt”);BufferedInputStream bin= new BufferedInputStream(in,256) int len; byte bArray=new byte256;len=bin.read(bArray);len中得到是长度, bArray中得到的是数据按提示,改写3程序4 数据输入输出流下面的例子显示如何利用数据输入输出流往文件中写不同类型的数据4 数据输入输出流class datainput_output public static void main(String args) throws IOException FileOutputStream fos=new FileOutputStream(“a.txt”); DataOutputStream dos=new DataOutputStream (fos); try dos.writeBoolean(true); dos.writeByte(byte)123); dos.writeChar(J); dos.writeDouble(3.141592654); dos.writeFloat(2.7182f); dos.writeInt(1234567890); dos.writeLong(998877665544332211L); dos.writeShort(short)11223); finally dos.close(); 4 数据输入输出流DataInputStream dis=new DataInputStream( new FileInputStream(”a.txt);try System.out.println(t +dis.readBoolean(); System.out.println(t +dis.readByte(); System.out.println(t +dis.readChar(); System.out.println(t +dis.readDouble(); System.out.println(t +dis.readFloat(); System.out.println(t +dis.readInt(); System.out.println(t +dis.readLong(); System.out.println(t +dis.readShort();finallydis.close();4 数据输入输出流DateLine(InputStream in)(计算字符和行数) DataInputStream data=new DataInputStream(in); String currentLine; int lineCount=0; int charCount=0; while(currentLine=dataIn.readLine()!=null) +lineCount; charCount+=currentLine.length(); return (charCount/(float)lineCount);6 文件的其它操作例: 获取当前目录下所有文件名和文件的尺寸: import java.io.*;public class file_size public static void main(String args) File files=new File(“.”); String file_list=files.list(); for(int i=0;i HwMouse.java5. 用一个文本编辑器,创建一个HwMouse.html文件,文件中含有调用HwMouse.class程序的标记。6. 用appletviewer命令测试你的Applet。 c:student HwMouse.html 水平2:创建同心的正方形1. 创建一个Applet,Squares.java,它产生一系列如下图的同心正方形(或圆形):2. 试图使每个正方形(或圆形)为一种不同的颜色。如果你导入java.awt.Color类,则可用setColor方法对Java applet加入色彩。import java.awt.Color;. . .public void paint(Graphics g) g.setColor(Color.blue);g.drawRect(5, 5, 50, 50);. . .水平3:创建一个滚动的Java applet编写一个Applet,显示一幅图像,并在鼠标经过该图像时播放一个声音。四、分析整理实验数据,写出实验报告实验七 JDBC编程一、实验目的1本实验主要设计Java访问数据库的方法。2理解JDBC访问数据库的四种方式。二、实验原理及方法Seven Basic Steps in Using JDBC1.Load the driver2.Define the Connection URL3.Establish the Connection4.Create a Statement object5.Execute a query6.Process

温馨提示

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

评论

0/150

提交评论