java实验报告 - - 129074(2)

2019-06-05 11:14

五、注意事项

⒈认真填写实验报告

⒉遵守实验室各项制度,服从实验指导教师的安排 ⒊按规定的时间完成实验

六、说明

⒈建议学时数2学时 七、实验总结与体会

通过本实验熟悉Java的基本语法、编写应用程序接收命令行参数、编写应用程序接收用户从键盘的输入和掌握字符串与数组的基本方法等技能,特别的了解了运行配置的使用和功能。

实验三、面向对象编程实验

一、实验目的

⒈掌握接口的编写及使用 ⒉理解继承、多态

⒊掌握包的编写以及如何使用包中的类

二、预习内容

java的基本语法知识

三、实验设备与环境

装有JAVA语言工具软件 (Eclipse )的微机若干

四、实验内容

⒈接口的编写

(1) 编辑Interfaceclass.java。

interface Interfaceclass{ int i=4; int k=5; public void func1(); public int func2(int i); }

(2) 编辑UseInterface。

class search_3_interface implements Interfaceclass {

int j;

public void func1(){ System.out.println(\+i); }

public int func2(int i){

System.out.println(\+i); return i; }

public static void main(String args[]){ search_3_interface x=new search_3_interface(); x.func1(); x.func2(k); } }

运行结果:

⒉多态在工资系统中的应用

设计一个根据雇员类型利用abstract方法和多态性完成工资单计算的程序。 Employee是抽象类,Employee的子类有Boss(每星期发给他固定工资,而不计工作时间)、 CommissionWorker(除基本工资外还根据销售额发放浮动工资)、PieceWorker(按其生产的产品数发放工资)、HourlyWorker(根据工作时间长短发放工资)。该例的Employee的每个子类都声明为final,因为不需要再继承它们生成子类。

对所有雇员类型都使用earnings()方法,但每个人挣的工资按他所属的雇员类计算,所有雇员类都是从超类Earnings()派出生的。所有在超类中声明earnings()为抽象方法,并且对于每个子类都提供恰当的earnings()的实现方法。为了计算雇员的工资,程序仅仅使用雇员对象的一个超类引导 并调用earnings()方法。在一个实际的工资系统中,各种Employee对象的引用可以通过一个Employee引用数组来实现。程序依次使用数组的每个元素(Employee引用)调用每个对象的employee()方法。

abstract class Employee{ private String name; private float basicpay; public abstract float earning(); public Employee(String name,float basicpay){ this.name = name; this.basicpay = basicpay; } public String getname(){ return name; } public float getbasicpay(){ return basicpay; } public void showpay(){} }

//Boss类

final class Boss extends Employee{ public Boss(String name,float basicpay){ super(name,basicpay); }//boss工资只有基本工资 public float earning(){ return getbasicpay(); } public void showpay(){ System.out.println(\+getname()+\+earning()); } }

//CommissionWorker类

final class CommissionWorker extends Employee{ private float floatpay;//浮动工资 private float sale;//销售额 public CommissionWorker(String name,float basicpay,float sale){ super(name,basicpay); setsale(sale); setfloatpay(getsale());

} public void setfloatpay(float sale){ floatpay = sale*5/100; }//除基本工资外,还有销售额5%的浮动工资 public float getfloatpay(){ return floatpay; } public void setsale(float sale){ this.sale=sale; } public float getsale(){ return sale; } public float earning(){ return getbasicpay()+getfloatpay(); } public void showpay(){ System.out.println(\+getname()+\+earning()); } }

//PieceWorker类

final class PieceWorker extends Employee{ private long sumwork;//生产的产品数 public PieceWorker(String name,float basicpay,long sumwork){ super(name,basicpay);//basicpay用于记录单件产品工资 setsumwork(sumwork); } public void setsumwork(long sumwork){ this.sumwork=sumwork; } public long getsumwork(){ return sumwork; } public float earning(){ return getbasicpay()*getsumwork(); } public void showpay(){ System.out.println(\+getname()+\+earning()); } }

final class HourlyWorker extends Employee{ private float hour;//工作了多少小时 public HourlyWorker(String name,float basicpay,float hour){ super(name,basicpay);//basicpay为一小时的工资 sethour(hour); } public void sethour(float hour){ this.hour=hour; } public float gethour(){ return hour; } public float earning(){ return getbasicpay()*gethour(); } public void showpay(){ System.out.println(\+getname()+\+earning()); } }

public class search_3_abstract { public static void main(String [] args){ Employee[] emp = new Employee[4]; Boss boss = new Boss(\,15000); CommissionWorker cWorker = new CommissionWorker(\,500,50000); PieceWorker pWorker = new PieceWorker(\,0.5f,4000);

}

}

HourlyWorker hWorker = new HourlyWorker(\,11,67);

emp[0] = boss; emp[1] = cWorker; emp[2] = pWorker; emp[3] = hWorker;

for(int i=0;i

运行结果:

⒊ 包的建立与使用

(1) 编辑Calculate.java。

package mypacage;

public class search_3_Calculate{ public int a; public search_3_Calculate(int a){ this.a=a; System.out.println(\+this.a); } public double volume(double height,double width,double depth){ return height*width*depth; } public int add(int x, int y){ return x+y; } public void a(){ System.out.println(\+a); }

编译,查看目录下是否生成了mypacage文件夹,在该文件夹中是否有Calculate.class文件。

结果:

(2) 编辑使用mypacage的程序。

import mypacage.search_3_Calculate;

public class search_3_3 { public static void main(String ags[ ]){ search_3_Calculate c=new search_3_Calculate(10); double s=c.volume(5,6,7); System.out.println(s); //int b=c.add(5,6); //c.a(); } }

运行结果:

五、注意事项

⒈认真填写实验报告

⒉遵守实验室各项制度,服从实验指导教师的安排

⒊按规定的时间完成实验 六、实验总结与体会

本实验做了关于接口、抽象类及实现和包的的实验,同过这些我掌握了接口的编写及使用;理解继承、多态的内涵 ;掌握了包的编写以及如何使用包中的类的方法。在对第2个问题的编写解决过程中,学会了对于编程问题的分析与解答应从最简入手,但也不能不顾大局。

实验四、异常处理实验

一、实验目的

⒈异常的生产及捕获 ⒉自定义异常及其使用

二、预习内容

面向对象的基本知识

三、实验设备与环境

装有JAVA语言工具软件 (Eclipse )的微机若干

四、实验内容

⒈异常的捕获

计算两数相除并输出结果。使用两个catch子句,分别捕捉除数为0的异常和参数输入有误异常。

编译并运行,当输入除数为0时,将有异常出现,当输入的不是整数时,如将30输成了3o,出现的是另一种异常。

import java.io.*;

import java.io.BufferedReader; import java.io.InputStreamReader; public class search_4_1{ public static void main(String args[]){ try{ BufferedReader strin=new BufferedReader (new InputStreamReader(System.in)); System.out.print(\请输入被除数:\); String str = strin.readLine(); double beichushu=Double.parseDouble(str); System.out.print(\请输入除数:\); str = strin.readLine(); double chushu = Double.parseDouble(str); double shang = beichushu/chushu; System .out .println(\商为:\+shang); } //捕获与I/O有关的异常 catch(IOException e){ e.printStackTrace(); } //捕获数值转化时的异常,如不能将字符转化成数值 catch(NumberFormatException e){ System .out .println(\请输入整数!\); e .printStackTrace(); } //捕获除数为0的异常 catch(ArithmeticException e){ System .out .println(\除数不可以0!\); e .printStackTrace(); } } }


java实验报告 - - 129074(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:三网融合:广电网的宏观战略思考

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: