java试验报告2.doc_第1页
java试验报告2.doc_第2页
java试验报告2.doc_第3页
java试验报告2.doc_第4页
java试验报告2.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

政法学院本科学生实验报告( 二) 姓名 学院 计算机科学学院 专业计算机科学与技术 班级 实验课程名称 JAVA使用教程 试验时间 年 月 日指导教师及职称 实验成绩 开课时间 学年 1 学期政法学院实验管理中心印制25实验题目类与对象、继承与接口、常用类与异常处理小组合作否 姓 名班 级学 号一、实验目的:1、 熟悉Java面向对象程序设计的基本思想。2、 掌握类与对象的定义及使用方法。3、 掌握package语句与import语句的用法。4、掌握java 继承中父类及其子类的定义方法。5、掌握子类重写父类同名方法的方法。6、掌握用法。7、掌握java String类的各个常用方法的应用。8、掌握Date类和Calendar类的各个常用方法的应用。9、掌握Java正则表达式的应用。10、掌握Java异常处理的方法。11、掌握Java数组及枚举类型的应用。二、实验环境:装有 jdk1.6 及 Eclipse 3.4.1的计算机一台三、实验内容与步骤:1、三角形、梯形和圆形的类封装1、启动 Eclipse3.4.1新建javaprojectname:my project_01java packagename:org.exercisejava classname: AreaAndLength程序如下: package org.exercise;class Trangle double sideA,sideB,sideC,area,length; boolean boo; public Trangle(double a,double b,double c) sideA=a; sideB=b; sideC=c; /参数a,b,c分别赋值给sideA,sideB,sideC if(a+bc&a+cb&b+ca) /a,b,c构成三角形的条件表达式 boo=true; /给boo赋值。 else boo=false; /给boo赋值。 double getLength() return sideA+sideB+sideC; public double getArea() if(boo) double p=(sideA+sideB+sideC)/2.0; area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC) ; return area; else System.out.println(不是一个三角形,不能计算面积); return 0; public void setABC(double a,double b,double c) sideA=a; sideB=b; sideC=c; /参数a,b,c分别赋值给sideA,sideB,sideC if(a+bc&a+cb&b+ca) /a,b,c构成三角形的条件表达式 boo=true; /给boo赋值。 else boo=false; /给boo赋值。 class Lader double above,bottom,height,area; Lader(double a,double b,double h) above=a; bottom=b; height=h;/方法体,将参数a,b,c分别赋值给above,bottom,height double getArea() area=(above+bottom)/2*height; return area;/方法体,,要求计算出area返回 class Circle double radius,area; Circle(double r) radius=r; /方法体 double getArea() area=3.14*radius*radius; return area;/方法体,要求计算出area返回 double getLength() return 3.14*2*radius; /getArea方法体的代码,要求计算出length返回 void setRadius(double newRadius) radius=newRadius; double getRadius() return radius; public class AreaAndLength public static void main(String args) double length,area; Circle circle=null; Trangle trangle; Lader lader; circle=new Circle(10); /创建对象circle trangle=new Trangle(3,4,5);/创建对象trangle。 lader=new Lader(6,8,10); /创建对象lader length=circle.getLength();/ circle调用方法返回周长并赋值给length System.out.println(圆的周长:+length); area=circle.getArea();/面积并赋值给area System.out.println(圆的面积:+area); length=trangle.getLength();/回周长并赋值给length System.out.println(三角形的周长:+length); area=trangle.getArea();/给area System.out.println(三角形的面积:+area); area=lader.getArea();/方法返回面积并赋值给area System.out.println(梯形的面积:+area); trangle.setABC(12,34,1);/改为12,34,1。area=trangle.getArea();/并赋值给area System.out.println(三角形的面积:+area); length=trangle.getLength();/给length System.out.println(三角形的周长:+length); 调试无误,运行结果如图:2、学习实例成员与类成员的区别1、启动 Eclipse3.4.1新建javaprojectname:my project_01java packagename:org.exercisejava classname:Example2、程序如下:package org.exercise;class A float a; /声明一个float型实例变量a static float b; /声明一个float型类变量b,即static变量b void setA(float a) this.a=a; /将参数a的值赋值给成员变量a void setB(float b) this.b=b; /将参数b的值赋值给成员变量b float getA() return a; float getB() return b; void inputA() System.out.println(a); static void inputB() System.out.println(b); public class Example public static void main(String args) A.b=100; /通过类名操作类变量b,并赋值100 A.inputB(); /通过类名调用方法inputB() A cat=new A(); A dog=new A(); cat.setA(200); /cat象调用方法setA(int a)将cat的成员a的值设置为200 cat.setB(400); /cat调用方法setB(int b)将cat的成员b的值设置为400 dog.setA(150); /dog象调用方法setA(int a)将dog的成员a的值设置为150 dog.setA(300); /dog调用方法setB(int b)将dog的成员b的值设置为300 cat.inputA(); /cat调用inputA()。 cat.inputB(); /cat调用inputB()。 dog.inputA(); /dog调用inputA()。 dog.inputB(); /dog调用inputB()。 调试无误,运行结果如图:3、使用package语句与import语句:上机调试下面程序,学会package与import语句的用法。1、启动 Eclipse3.4.1新建javaprojectname:my project_01java packagename:tomjava classname: SquareEquation程序如下:package tom;public class SquareEquation double a,b,c; double root1,root2; boolean boo; public SquareEquation(double a,double b,double c) this.a=a; this.b=b; this.c=c; if(a!=0) boo=true; else boo=false; public void getRoots() if(boo) System.out.println(是一元2次方程); double disk=b*b-4*a*c; if(disk=0) root1=(-b+Math.sqrt(disk)/(2*a); root2=(-b-Math.sqrt(disk)/(2*a); System.out.printf(方程的根:%f,%fn,root1,root2); else System.out.printf(方程没有实根n); else System.out.println(不是一元2次方程); public void setCoefficient(double a,double b,double c) this.a=a; this.b=b; this.c=c; if(a!=0) boo=true; else boo=false; 2、新建javaprojectname:my project_01java packagename:zhajava classname: SunRise程序如下:package zha;import tom.*;class SunRise public static void main(String args ) SquareEquation equation=new SquareEquation(4,5,1); equation.getRoots(); equation.setCoefficient(-3,4,5); equation.getRoots(); 调试无误,运行SunRise.java结果如图:继承与接口1、定义父类People,分别定义People类的子类ChinaPeople,AmericanPeople和BeijingPeople并分别重写父类中的各个方法1、启动 Eclipse3.4.1新建javaprojectname:my project_02java packagename:jiekoujava classname: Example程序代码如下:package jiekou;class People protected double weight,height; public void speakHello() System.out.println(yayawawa); public void averageHeight() height=173; System.out.println(average height:+height); public void averageWeight() weight=70; System.out.println(average weight:+weight); class ChinaPeople extends People public void speakHello() System.out.println(你好,吃饭了吗?); /重写public void speakHello()方法,要求输出类似“你好,吃了吗”这样的 /汉语信息 public void averageHeight() height=168.78; System.out.println ( 中国人的平均身高:+height+厘米); /重写public void averageHeight()方法,要求输出类似 /“中国人的平均身高:168.78厘米”这样的汉语信息 public void averageWeight() weight=65; System.out.println(中国人得平均体重:+weight+公斤); /重写public void averageWeight()方法, /要求输出类似“中国人的平均体重:65公斤”这样的汉语信息 public void chinaGongfu() System.out.println(坐如钟,站如松,睡如弓); /输出中国武术的信息,例如:坐如钟,站如松,睡如弓等 class AmericanPeople extends People public void speakHello() System.out.println(How do you do); /重写public void speakHello()方法,要求输出类似 /“How do you do”这样的英语信息。 public void averageHeight() height=185; System.out.println(姜磊:+height+cm); /重写public void averageHeight()方法 public void averageWeight() weight=70; System.out.println(姜磊:+weight+kg); /重写public void averageWeight()方法 public void americanBoxing() System.out.println(直拳、钩拳);/输出拳击的信息,例如,“直拳”、“钩拳”等 class BeijingPeople extends ChinaPeople public void speakHello() System.out.println(您好); /重写public void speakHello()方法,要求输出类似“您好”这样的汉语信息 public void averagHeight() height=190; System.out.println(中国人民解放军:+height+CM); /重写public void averageHeight()方法 public void averageWeight() weight=65; System.out.println(中国人民解放军: +weight+kg); /重写public void averageWeight()方法 public void beijingOpera() System.out.println(京剧);/输出京剧的信息 public class Example public static void main(String args) ChinaPeople chinaPeople=new ChinaPeople(); AmericanPeople americanPeople=new AmericanPeople(); BeijingPeople beijingPeople=new BeijingPeople(); chinaPeople.speakHello(); americanPeople.speakHello(); beijingPeople.speakHello(); chinaPeople.averageHeight(); americanPeople.averageHeight(); beijingPeople.averageHeight(); chinaPeople.averageWeight(); americanPeople.averageWeight(); beijingPeople.averageWeight(); chinaPeople.chinaGongfu(); americanPeople.americanBoxing(); beijingPeople.beijingOpera() ; beijingPeople.chinaGongfu(); 调试无误,运行结果如图:2、掌握抽象类的定义及其实现方法,学习上转型对象的运用方法。1、启动 Eclipse3.4.1新建javaprojectname:my project_01java packagename:jiekoujava classname: HardWork2、程序如下:package jiekou;abstract class Employee public abstract double earnings();class YearWorker extends Employee public double earinga() return 50000; /重写earnings()方法public double earnings()return 0;class MonthWorker extends Employee public double earnings() return 12*3000; /重写earnings()方法。class WeekWorker extends Employee public double earnings() return 52*500; /重写earnings()方法。class Company Employee employee; double salaries=0; Company(Employee employee) this.employee=employee; public double salariesPay() salaries=0; for(int i=0;iemployee.length;i+) salaries=salaries+employeei.earnings(); /计算salaries。 return salaries; public class HardWork public static void main(String args) Employee employee=new Employee20; for(int i=0;iemployee.length;i+) if(i%3=0) employeei=new WeekWorker(); else if(i%3=1) employeei=new MonthWorker(); else if(i%3=2) employeei=new YearWorker(); Company company=new Company(employee); System.out.println(公司年工资总额:+company.salariesPay(); 调试无误,运行结果如图:3、掌握接口的定义及其实现方法,学习接口回调的运用方法。1、启动 Eclipse3.4.1新建javaprojectname:my project_01java packagename:jiekoujava classname:Road程序如下:package jiekou;interface ComputerWeight public double computeWeight();class Television implements ComputerWeightpublic double ComputWeight()return 45;/实现computeWeight()方法。public double computeWeight() return 0;class Computer implements ComputerWeight public double computeWeight() return 65.5; /实现computeWeight()方法。 class WashMachine implements ComputerWeight public double computeWeight() return 145; /实现computeWeight()方法。class Car ComputerWeight goods; double totalWeights=0; Car(ComputerWeight goods) this.goods=goods; public double getTotalWeights() totalWeights=0; for(int k=0;kgoods.length;k+) totalWeights=totalWeights+puteWeight(); /计算totalWeights return totalWeights; public class Road public static void main(String args) ComputerWeight goodsOne=new ComputerWeight50, goodsTwo=new ComputerWeight22 ; for(int i=0;igoodsOne.length;i+) if(i%3=0) goodsOnei=new Television(); else if(i%3=1) goodsOnei=new Computer(); else if(i%3=2) goodsOnei=new WashMachine(); for(int i=0;igoodsTwo.length;i+) if(i%3=0) goodsTwoi=new Television(); else if(i%3=1) goodsTwoi=new Computer(); else if(i%3=2) goodsTwoi=new WashMachine(); Car 大货车=new Car(goodsOne); System.out.println(大货车装载的货物重量:+大货车.getTotalWeights(); Car 小货车=new Car(goodsTwo); System.out.println(小货车装载的货物重量:+小货车.getTotalWeights(); 调试无误,运行SunRise.java结果如图:常用类与异常处理5.1 统计一个字符串中单词的个数。设单词之间用一个或多个空格风格,该字符串只由字母与空格组成。程序代码如下:import java.util.*;public class TestString public static void main(Stringargs)String data=This is a String;StringTokenizer st=new StringTokenizer(data); int count=st.countTokens(); System.out.println(原串是:+data); System.out.println(各个单词如下:); while(st.hasMoreTokens() String s=st.nextToken(); System.out.println(s); System.out.println(单词总数:+count); 如上述程序,将其在Eclipse环境下运行,结果如图所示:5.2使用正则表达式获取文本文件中的邮箱地址。程序代码如下:import java.io.BufferedReader;import java.io.*;import java.util.regex.*;public class EmailSpider public static void main(String args) try BufferedReader br = new BufferedReader(new FileReader(d:test.txt);String line = ;while(line=br.readLine() != null) parse(line); catch (FileNotFoundException e) e.printStackTrace(); catch (IOException e) e.printStackTrace();private static void parse(String line) Pattern p = Ppile(w.+w.+.w+); / 编译正则表达式Matcher m = p.matcher(line); / 匹配邮箱地址while(m.find() System.out.println(m.group(); / 打印匹配的邮箱地址如上述程序,先将其在文本文件中保存邮箱地址,如图所示: 最后在Eclipse环境下运行,结果如图所示:5.11使用DateFormat类格式化当前日期。程序代码如下:import java.util.*;import java.text.*;public class TestDateFormat public static Date parseDate(String text, String format) / 格式化日期字符串try return new SimpleDateFormat(format).parse(text); catch (ParseException e) throw new RuntimeException(e.getMessage();public static void main(String args) throws ParseException Date date = new Date();SimpleDateFormat f = new SimpleDateFormat(yyyy-MM-dd-EEEE-hh-mm-ss);SimpleDateFormat f1 = new SimpleDateFormat(yyyy/MM/dd/EEEE/hh/mm/ss);System.out.println(f.format(date);System.out.println(f1.format(date);Date d1 = parseDate(12-23-2008, MM-dd-yyyy);System.out.println(d1);Date d2 = parseDate(2008/12/25 10:53:54, yyyy/MM/dd hh:mm:ss);System.out.println(d2);如上述程序,将其在Eclipse环境下运行,结果如图所示:6.1运用Java的二维数组,打印“魔方阵”。所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。要求打印125之间由自然数构成的魔方阵。程序代码如下:public class Magics public static void main(String args) int i = 0;int j = 0;int m = 0;int n = 5;j = (n + 1) / 2 - 1;int a = new intnn;aij = +m;/ 第一个数在第一行正中while (m 1) i = i + 2;j = j - 1;if (i (n - 1)/ 超出方阵右边界,则新位置取应选行的最左一个位置j = j - n;aij = +m;for (i = 0; i n; i+) for (j = 0; j n; j+) System.out.print(aij+t);System.out.println();如上述程序,将其在Eclipse环境下运行,结果如图所示: 6.2运用Java的二维数组,求出两个矩阵相乘的值。在程序中,a1是一个2*3的矩阵,b1是一个3*2的矩阵,求出这两个矩阵的积。程序代码如下:public class MatrixDemo public static void main(String args) inta1=1,2,3,4,5,6;intb1=1,2,3,4,5,6;intc1=new int22;for(int row=0;row2;row+)for(int col=0;col2;col+)c1rowcol=0;for(int k=0;k3;k+)c1rowcol+=a1rowk*b1kcol;for(int row=0;row2;row+)for(int col=

温馨提示

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

评论

0/150

提交评论