JAVA第六次实验报告接口
Java语言程序设计实验六 类的继承(接口与包)实验报告
sub_Sort3 m1 = new sub_Sort3();
m1.subsort(100,200,300);
System.out.println("三个数从大到小为:
"+m1.max1+","+m1.max2+","+m1.max3);
}
}
问题 :a、为什么标有.①处可以直接使用,而不需要生成 Sort3 的对象,然后使用该对象. sort()调用
**大学**学院
Java 语言程序设计 实验报告
实验名称:
实验六 类的继承(接口与包)
班 级: 计算机二班 姓 名:
**
学 号:
**
实验地点:
7-406
日 期:
2019.11.4
一、实验目的:
1、掌握类和构造方法的定义 2、类的继承。
二、实验环境: 有 Java 环境的计算机若干台
三、实验内容和要求:
public static void main (String args[]){
int a[]={34,12,8,67,88,23,98,101,119,56};
int sum,num1,num2;
//隐藏父类 sum_3 中的实例变量
static int num3;
//隐藏父类 sum_3 中的类变量
void sum(int i,int j,int k){
num1=i;
num2=j;
num3=k;
sum=num1+num2+num3;
}
}
public class computing{
Sort3(){
Java语言程序设计实验六 类的继承(接口与包)实验报告 (2)
**大学**学院Java语言程序设计实验报告System.out.println("sum="+m1.num1+"+"+m1.num2+"+"+m1.num3+"="+m1.sum);}}问题:a、子类的sum,num1,num2分别是多少,父类的sum,num1,num2 分别是多少,如何在main中输出父类的sum,num1,num2子类:sum=600,num1=100,num2=200父类:sum=0,num1=0,num2=0;b、就这个例子,谈谈你对覆盖的理解?当子类的变量与父类的变量相同时,父类的变量被隐藏,main函数自动调用子类的变量2.运行下面的程序,理解方法的继承。
class Sort3{double max1,max2,max3;Sort3(){max1=-1;max2=-1;max3=-1;}double s;if (max1<max2){ s=max1;max1=max2;max2=s; }if (max1<max3){ s=max1;max1=max3;max3=s; }if (max2<max3){ s=max2;max2=max3;max3=s; }}}class sub_Sort3 extends Sort3{void subsort(double i,double j,double k){max1=i;max2=j;max3=k;sort(); //调用父类中的方法sort() …….① } }public class Class1{public static void main (String args[]){sub_Sort3 m1 = new sub_Sort3();m1.subsort(100,200,300);System.out.println("三个数从大到小为:"+m1.max1+","+m1.max2+","+m1.max3);}}问题:a、为什么标有.①处可以直接使用,而不需要生成Sort3的对象,然后使用该对象. sort()调用因为sub_sort3继承了sort,所以sort的方法就像是在子类中直接定义一样,可以被子类直接调用 B、程序实现什么功能?三个数之间互相比较大小3.运行下面的程序,理解方法的重载。
java实验报告——继承与接口
System.out.print('\t'+"平均分");
System.out.println('\t'+"成绩等级");
for(int i=0; i<pg.length;i++) {
System.out.print(pg[i].Name); System.out.print('\t'+pg[i].Stu_type); System.out.print('\t'+String.valueOf(pg[i].C_score)); System.out.print('\t'+String.valueOf(pg[i].English_score)); System.out.print('\t'+String.valueOf(pg[i].Java_score)); System.out.print('\t'+String.valueOf(pg[i].score)); System.out.println('\t'+pg[i].sco_Level); } System.out.println(); } }
String Name=""; String Stu_type=""; int C_score; int English_score; int Java_score; int score; // String sco_Level=""; Sco_Level sco_Level;
public Student(String name,String stu_type,int sco1,int sco2,int sco3) {
Java的抽象和接口实验报告
本文由我司收集整编,推荐下载,如有疑问,请与我司联系Java 的抽象和接口实验报告2016/09/09 1860 1、掌握抽象类和抽象方法的使用。
2、熟悉类中接口的定义和实现。
1、定义一个抽象类Shape,它包含一个抽象方法getArea(),从Shape 类派生出Rectangle 和Circle 类,这两个类都用getArea()方法计算对象的面积。
编写应用程序使用Rectangle 和Circle 类。
实验要求:定义Rectangle 和Circle 类的构造方法,初始化成员变量。
2、学校中有老师和学生两类人,而在职研究生既是老师又是学生。
(1)设计两个信息管理接口StudentInterface 和TeacherInterface,其中StudentInterface 接口包括setFee()方法和getFee()方法,分别用于设置和获取学生的学费,TeacherInterface 接口包括setPay()和getPay()方法,分别用于设置和获取老师的工资。
(2)定义一个研究生类Graduate,实现StudentInterface 接口和TeacherInterface 接口,它定义的成员变量有name(姓名),sex(性别),age(年龄),fee(每学期学费)pay(月工资)。
(3)创建一个姓名为“zhangsan”的研究生,统计他的年收入和学费,如果收入减去学费不足2000 元,则输出“You need a loan!”(需要贷款)的信息,否则输出“You income is enough!”信息。
实验要求:在Graduate 中实现各个接口声明的抽象方法。
四、实验结果(本实验源程序清单及运行结果或实验结论、实验设计图)第一题:package firsrpakeage;public class Test01 {public static void main(String[] args) {。
Java实验报告继承、多态、接口和异常处理
Java实验报告继承、多态、接⼝和异常处理实验5 继承、多态、接⼝和异常处理⼀、实验⽬的1、掌握Java的类和对象的声明和使⽤⽅法;2、掌握Java的类的继承和实现⽅法;3、掌握多态性在类的继承中的运⽤;4、掌握接⼝的定义与使⽤;5、掌握基本异常的处理机制;6、熟悉try语句与catch语句的搭配使⽤;7、了解有异常处理与没有异常处理的差别;8、多重catch语句的使⽤;9、使⽤Throws声明异常和Throw抛出异常。
⼆、实验环境1、PC微机;2、DOS操作系统或 Windows 操作系统;3、Java sdk程序开发环境、eclipse集成环境。
三、实验内容1. 设计三个类,分别是学⽣类Student,本科⽣类UnderGraduate,研究⽣类Postjgraduate,其中Student类是⼀个抽象类,它包含学⽣的基本信息如姓名、所学课程、课程成绩等,⽽Undergraduate类和Postgraduate类都是Student类的⼦类,这两个类计算课程成绩等级的⽅法有所不同,如下表所⽰。
假设某班级⾥既有研究⽣⼜有本科⽣,编写程序统计出全班学⽣2. 和Mobilephone具体实现,并设计⼀个应⽤程序类来使⽤这些类。
3.要求设计⼀个GUI图形窗⼝程序,该程序让⽤户输⼊⼀个星期中的任意⼀天的数字1-7,然后输出该数字所对应的是星期⼏。
四、实验步骤实验内容⼀1.建⽴package experiment5_1,其最终⽬录结构如下:2.建⽴Student类:package experiment5_1;public abstract class Student {final static int CourseNo = 3;String name;String type;int[] courses;String courseGrade;public Student(String name) {/doc/1bd4a299a66e58fafab069dc5022aaea998f41e2.html = name; courses = new int[CourseNo];courseGrade = "" ;}public abstract void calculateGrade();public String getName( ) {return name;}public String getType( ) {return type ;}public String getCourseGrade( ) {return courseGrade;}public int getCourseScore(int courseNumber) {return courses[courseNumber];}public void setName(String name) {/doc/1bd4a299a66e58fafab069dc5022aaea998f41e2.html = name;}public void setType(String type) {this.type = type;}public void setCourseScore(int courseNumber, int courseScore) { //按课程索引号设置课程成绩this.courses[courseNumber] = courseScore ;}}3.建⽴外部类(1)研究⽣类Postjgraduatepackage experiment5_1;public class postgraduate extends Student {public postgraduate(String name) {super(name);type = "研究⽣";}public void calculateGrade() {// TODO Auto-generated method stubint total = 0;double average = 0;for (int i = 0; i < CourseNo; i++) {total += courses[i];};average = total / CourseNo;if (average>=90&&average<100) courseGrade = "优秀"; else if (average>=80&&average<90) courseGrade = "良好"; else if (average>=70&&average<80) courseGrade = "⼀般"; else if (average>=60&&average<70) courseGrade = "及格"; else courseGrade = "不及格";}}(2)本科⽣类UnderGraduatepackage experiment5_1;public class undergraduate extends Student {public undergraduate(String name ) {super(name);type = "本科⽣";}public void calculateGrade() {int total = 0;double average = 0;for (int i = 0; i < CourseNo; i++) {total += getCourseScore(i) ;};average = total / CourseNo;if (average>=80&&average<100) courseGrade = "优秀"; else if (average>=70&&average<80) courseGrade = "良好"; else if (average>=60&&average<70) courseGrade = "⼀般"; else if (average>=50&&average<60) courseGrade = "及格"; else courseGrade = "不及格";}}4.编写代码测试函数package experiment5_1;public class polymorphism {public static void main(String[] args) {Student[] students = new Student[5];students[0] = new undergraduate("陈建平");students[1] = new undergraduate("鲁向东");students[2] = new postgraduate("匡晓华");students[3] = new undergraduate("周丽娜");students[4] = new postgraduate("梁欣欣");for (int i=0; i<5 ;i++) {students[i].setCourseScore(0,87);students[i].setCourseScore(1,90);students[i].setCourseScore(2,78);}for (int i=0; i<5 ;i++) {students[i].calculateGrade();}System.out.println("姓名" + " 类型" +" 成绩");System.out.println("-----------------------");for (int i=0; i<5 ;i++) {System.out.println(students[i].getName( )+" "+students[i].getType( )+" "+students[i].getCourseGrade( ));}}}实验内容⼆1.建⽴package experiment5_2,其最终⽬录结构如下:2.写接⼝Soundable代码:package experiment5_2;public interface Soundable {public void increaseV olume( );public void decreaseV olume( );public void stopSound( );public void playSound( );}3.创建三个类Radio、Walkman和Mobilephone具体实现,分别添加代码:// Mobilephone类package experiment5_2;class Mobilephone implements Soundable{public void increaseV olume( ) {System.out.println("增⼤⼿机⾳量");}public void decreaseV olume( ) {System.out.println("减⼩⼿机⾳量");}public void stopSound( ) {System.out.println("关闭⼿机");}public void playSound( ) {System.out.println("⼿机发出来电铃声");}}// Walkman类package experiment5_2;class Walkman implements Soundable { public void increaseV olume( ) { System.out.println("增⼤随声听⾳量"); }public void decreaseV olume( ) { System.out.println("减⼩随声听⾳量"); }public void stopSound( ) {System.out.println("关闭随声听");}public void playSound( ) {System.out.println("随声听发出⾳乐"); }}// Radio类package experiment5_2;class Radio implements Soundable{ public void increaseV olume( ) { System.out.println("增⼤收⾳机⾳量"); }public void decreaseV olume( ) { System.out.println("减⼩收⾳机⾳量"); }public void stopSound( ) {System.out.println("关闭收⾳机");}public void playSound( ) {System.out.println("收⾳机播放⼴播"); }}4.创建people类及编写测试代码://People类package experiment5_2;class People {public void listen(Soundable s) {s.playSound( );}}//测试代码package experiment5_2;import java.util.Scanner;public class InterfaceTest {public static void main(String[] args) {int i;People sportsman = new People( );Scanner scanner = new Scanner(System.in);Soundable[] soundDevice = new Soundable[3];//往声⾳设备数组中放⼊能发声的设备soundDevice[0] = new Radio( );soundDevice[1] = new Walkman( );soundDevice[2] = new Mobilephone();System.out.println("你想听什么? 请输⼊选择:0-收⾳机1-随声听2-⼿机");i = scanner.nextInt( );//开始听声⾳sportsman.listen(soundDevice[i]);soundDevice[i].increaseV olume( );soundDevice[i].stopSound();scanner.close();}}实验内容三1.建⽴package experiment5_3,其最终⽬录结构如下package experiment5_3;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class DateTransf extends JFrame implements KeyListener{/****/private static final long serialVersionUID = 1L;private static DateTransf frm;private static JTextField txt;private static JTextField data;DateTransf() {setTitle("数字与星期转换");setLocation(700, 300);setSize(400,130);}public static void main(String[] args) {frm = new DateTransf();frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frm.setLayout(new GridLayout(2,2));txt = new JTextField(12);data = new JTextField(12);JLabel lable1 = new JLabel("输⼊数字:");JLabel lable2 = new JLabel("星期⼏:");frm.add(lable1);txt.addKeyListener(frm);frm.add(txt);frm.add(lable2);frm.add(data);frm.setVisible(true);}public void keyPressed(KeyEvent e) {if (e.getSource() == txt) {if (e.getKeyCode() == KeyEvent.VK_ENTER) // 判断按下的键是否是回车键{try {int number = Integer.parseInt(txt.getText());switch (number) {case 1:data.setText("Mon");break;case 2:data.setText("Tue");break;case 3:data.setText("Wen");break;case 4:data.setText("Thu");break;case 5:data.setText("Fri");break;case 6:data.setText("Sat");break;case 7:data.setText("Sun");break;default:JOptionPane.showMessageDialog(null, "您输⼊的数字不是1~7","⽆效⽇期",/doc/1bd4a299a66e58fafab069dc5022aaea998f41e2.html RMATION_MESSAGE); break;}}catch (Exception e1) {// TODO: handle exceptionJOptionPane.showMessageDialog(null, "您输⼊的不是整数","⽆效⽇期",/doc/1bd4a299a66e58fafab069dc5022aaea998f41e2.html RMA TION_MESSAGE); }}}}public void keyReleased(KeyEvent e) {}public void keyTyped(KeyEvent e) {}}2.编译运⾏五、实验结果●实验内容⼀结果:●实验内容⼆结果:●实验内容三结果:六、实验⼩结1.这次实验的内容⽐较多,需要掌握Java的类和对象的声明和使⽤⽅法、Java的类的继承和实现⽅法、多态性在类的继承中的运⽤、接⼝的定义与使⽤、基本异常的处理机制、try语句与catch语句的搭配使⽤等等;2. 在实验过程中,重点是要区分好实例和类,灵活掌握类的调⽤。
java实验报告——继承与接口
南京理工大学泰州科技学院实验报告书课程名称:《Java 面向对象程序设计》实验题目:实验四继承与接口班级:09计算机(2)学号:0909030218姓名:尤源指导教师:李丛一、实验目的1.掌握Java语言的类的继承的概念。
2.掌握Java语言中抽象类的使用。
3.掌握Java语言中接口的使用4.掌握eclipse集成开发环境的使用。
二、实验内容1.类的继承,具体要求如下:(1)定义一Person类,该类具有属性人名、年龄、身份证号等信息以及将属性信息作为字符串返回的一方法;(2)定义一Student类,让该类继承Person类,该类除了具有属性人名、年龄、身份证号等信息以外还有学号,所在学校等信息;该类也具有将属性信息作为字符串返回的一方法;(3)编写测试类,测试这两个类2.定义一个动物抽象类Animal,该类有一个抽象的方法cry();定义一个小猫类Cat,该类继承了Animal类并实现了cry()方法,当调用cry()方法时打印“小猫喵喵叫”,定义一个小狗类Dog,该类也继承了Animal类并实现了cry()方法,当调用cry()方法时打印“小狗汪汪叫”。
3. 接口的运用。
定义一接口接口名叫Usb,该接口声明了两个方法分别为start()和stop()方法,定义一U 盘类UsbDiskWriter,一照相机类Camera、一手机类Mobile,让它们都实现该接口。
三、实验步骤实验(1)编写代码实验(2)编写代码实验(3)编写代码四、实验结果实验(1)运行结果实验(2)运行结果实验(3)运行结果五、结果分析1. 子类若想调用父类的构造函数必须要用super关键字。
2.接口体中只能运用抽象类。
3.在同一个java文件中只能在入口函数的类中用public。
接口用法示例实验报告(3篇)
第1篇一、实验目的1. 理解接口的概念和作用。
2. 掌握接口的基本用法,包括接口的定义、实现和实现类。
3. 通过实际操作,加深对接口的理解和应用。
二、实验环境1. 操作系统:Windows 102. 开发工具:IntelliJ IDEA3. 编程语言:Java三、实验内容1. 接口的基本概念2. 接口的定义与实现3. 接口的多态性4. 接口的应用示例四、实验步骤1. 接口的基本概念(1)打开IntelliJ IDEA,创建一个新的Java项目。
(2)在项目下创建一个包,命名为“com.example”,用于存放实验代码。
(3)在包下创建一个接口,命名为“IAnimal”,用于定义动物的基本行为。
```package com.example;public interface IAnimal {void eat();void sleep();}```2. 接口的定义与实现(1)在“com.example”包下创建一个类,命名为“Dog”,实现“IAnimal”接口。
```package com.example;public class Dog implements IAnimal {@Overridepublic void eat() {System.out.println("狗吃肉");}@Overridepublic void sleep() {System.out.println("狗睡觉");}}```(2)在“com.example”包下创建另一个类,命名为“Cat”,实现“IAnimal”接口。
```package com.example;public class Cat implements IAnimal {@Overridepublic void eat() {System.out.println("猫吃鱼");}@Overridepublic void sleep() {System.out.println("猫睡觉");}}```3. 接口的多态性(1)在主类“Main”中创建一个方法,用于测试接口的多态性。
java接口实验报告
java接口实验报告实验报告:Java接口实验一、实验目的通过本次实验,我们希望达到以下目的:1. 深入理解Java接口的概念、特点和用途。
2. 掌握如何定义、实现和使用接口。
3. 理解接口在多态性中的作用。
4. 掌握如何使用接口来设计可扩展的代码。
二、实验内容1. 定义一个接口,并实现该接口。
2. 使用接口实现多态性。
3. 通过接口设计可扩展的代码。
三、实验步骤及结果步骤1:定义一个接口首先,我们定义一个名为"Shape"的接口,该接口包含一个计算面积的方法。
```javapublic interface Shape {double getArea();}```步骤2:实现接口接下来,我们创建两个类(Circle和Rectangle),分别实现Shape接口。
每个类都提供了一个计算面积的方法。
Circle类:```javapublic class Circle implements Shape {private double radius;private static final double PI = ;public Circle(double radius) {= radius;}Overridepublic double getArea() {return PI radius radius;}}```Rectangle类:```javapublic class Rectangle implements Shape {private double width;private double height;public Rectangle(double width, double height) {= width;= height;}Overridepublic double getArea() {return width height;}}```步骤3:使用接口实现多态性现在,我们创建一个名为"ShapeDisplay"的类,该类接受一个Shape对象,并使用该对象的getArea方法来计算面积。
java第六次实验报告接口
1、实验题目体操比赛计算选手成绩的办法是去掉一个最高分和一个最低分再计算平均分,察一个班级的某科目的考试情况时,是计算全班学生的平均成绩。
School 类都实现了ComputerAverage 接口,但实现方式不同。
2、程序代码interface ComputerAverage{public double average(double x[]);}class Gymnastics implements ComputerAverage{public double average(double x[]){int count=;double aver=0,temp=0;for(int i=0;i<count;i++){for(int j=i;j<count;j++){if(x[j]<x[i]){temp=x[i];x[i]=x[j]; x[j]=temp;}}}for(int i=1;i<count-1;i++){aver=aver+x[i];}if(count>2)aver=aver/(count-2);elseaver=0;return aver;}}class School implements ComputerAverage{public double average(double x[]){int count=;double aver=0;for(int i=0;i<count;i++){aver=aver+x[i];}if(count>0)aver=aver/count;return aver;public class Estimator {public static void main(String args[]){double a[]={,,,,,,};double b[]={89,56,78,90,100,77,56,45,36,79,98};ComputerAverage computer;computer=new Gymnastics();而学校考Gymnastics 类和double result=(a);//computer 调用average(double x[]) 方法,将数组 a 传递给参数x"%n");" 体操选手最后得分:%\n",result); computer=new School();result=(b);//computer 调用average(double x[]) 方法,将数组 b 传递给参数x" 班级考试平均分数:%\n",result);}}3、实验结果4、实验分析一个类可以实现多个接口,类通过使用关键字implements 声明自己实现一个或多个接口,如果一个非抽象类实现了某个接口,那么这个类必须重写该接口的所有方法。
java接口实验报告 -回复
java接口实验报告-回复Java接口实验报告[Java接口]的使用及实验结果写一篇1500-2000字文章,一步一步回答一、引言Java是一种面向对象的编程语言,它提供了丰富的特性来支持面向对象的编程。
其中一个最重要的特性之一就是接口。
接口在Java中扮演着连接不同类之间的桥梁,它定义了一组方法的签名,规定了其他类必须遵循的接口。
在本次实验中,我们将探索Java接口的使用,并通过编写简单的实验来进一步理解其工作原理。
二、理论基础2.1 接口的定义在Java中,接口是一种抽象的定义,它定义了一组可以被其他类实现的方法。
接口可以看作是一种约定,它规定了实现它的类必须提供的方法。
接口中的方法只有签名,没有实现,是完全抽象的。
接口使用`interface`关键字来定义。
2.2 接口的实现一个类可以同时实现多个接口,通过`implements`关键字来实现接口。
一个类实现了一个接口,就必须提供该接口中定义的所有方法。
接口的实现通过关键字`implements`来实现。
2.3 接口的优势接口在Java中扮演着重要的角色,它具有以下几个优势:1. 定义了一组可以被其他类实现的方法,提供了一种规范。
2. 实现多态性,不同的类可以实现同一个接口,实现类的实例可以通过接口的引用来访问。
3. 提高了代码的灵活性和可维护性,实现类可以随时更改。
4. 提供了一种解耦合的方式,降低了类之间的依赖性。
三、实验过程3.1 实验目标本次实验的目标是通过创建一个简单的接口和实现类,理解接口的概念和使用方法。
3.2 实验准备首先,我们需要创建一个Java项目来进行实验。
打开[Java IDE],创建一个新的Java项目,并命名为"InterfaceExperiment"。
3.3 实验步骤步骤1:创建接口在项目中,创建一个新的Java类,并命名为"Animal"。
在类中定义一个抽象方法,例如`void sound()`。
Java语言程序设计实验六 类的继承(接口与包)实验报告 (2)
三个数之间互相比较大小
3.运行下面的程序,理解方法的重载。 class Sort2or3{
double max1,max2,max3; Sort2or3(){
max1=-1; max2=-1;
max3=-1;
} void sort(double i,double j){
double s; max1=i; max2=j; if(max1<max2){ s=max1;max1=max2;max2=s; } } void sort(double i,double j,double k){ double s; max1=i; max2=j; max3=k; if (max1<max2){ s=max1;max1=max2;max2=s; } if (max1<max3){ s=max1;max1=max3;max3=s; } if (max2<max3){ s=max2;max2=max3;max3=s; } } } public class Class1{ public static void main (String args[]){ Sort2or3 m1 = new Sort2or3(); m1.sort(100,200); System.out.println("两个数从大到小为:"+m1.max1+","+m1.max2); m1.sort(50,150,100); System.out.println("三个数从大到小为: "+m1.max1+","+m1.max2+","+m1.max3); } }
Java语言程序设计实验六 类的继承(接口与包)实验报告
**大学**学院Java语言程序设计实验报告7.体会教材的面向接口编程四、实验步骤:1.a.子类:sum=600,num1=100,num2=200父类:sum=0,num1=0,num2=0b.覆盖是指子类在继承父类之后,给变量名相同的参数一个新的值并在类中使用,覆盖了父类中继承下来的值。
子类重写父类的方法,要想在子类中调用超类中被覆盖掉的方法就需要用super关键字2.a.因为子类sub_Sort3继承了父类Sort3,可以直接使用父类的方法b.实现从大到小排序3.4.重载:重载指一个类里可以有多个方法具有相同的名字,但这些方法的参数必须不同。
重写:子类的方法的名字、参数个数、参数的类型和父类的方法完全相同。
子类通过方法的重写可以隐藏继承的方法。
例如class A{float a(int a,int b){return a+b;}float a(int a,int b,int c){return a+b+c;}}是重载class B{float b(int a,int b){return a+b;}}class B extends A{float b(int a,int b){return a-b;}}是重写5.class A{int x=8;void myPrint() {//父类System.out.println(x);}}class B extends A {int y=16;String s="java program!";void myPrint() {//子类System.out.println(y+" "+s);}void printAll() {myPrint();super.myPrint();}}public class Application {public static void main(String args[]) {B b=new B();b.printAll();}}6.class A{int i;float x;A(int i,float x) {this.i=i;this.x=x;}}public class test {public static A b(A a) {a.i=a.i+1;a.x=a.x+2;return a;}public static void main(String args[]) {A a=new A(2,8.0f);System.out.println("i="+a.i+" x="+a.x);a=b(a);System.out.println("i="+a.i+" x="+a.x);}}五、实验结果与分析(含程序、数据记录及分析和实验总结等):六:思考题:实验成绩:。
java实验报告:实验六
java实验报告:实验六一、实验目的本次实验的主要目的是深入理解和掌握 Java 中的一些关键概念和技术,包括面向对象编程的特性、异常处理机制以及文件操作等。
通过实际的编程实践,提高我们运用 Java 解决实际问题的能力。
二、实验环境本次实验使用的开发工具是 IntelliJ IDEA,操作系统为 Windows 10。
三、实验内容(一)面向对象编程实践1、定义一个名为“Student”的类,包含学生的姓名、学号和成绩等属性,并实现相应的 getter 和 setter 方法。
2、在主函数中创建“Student”类的对象,并对其属性进行赋值和输出。
(二)异常处理1、编写一个方法,实现两数相除的运算。
如果除数为 0,抛出“ArithmeticException”异常。
2、在主函数中调用该方法,并使用trycatch 语句捕获并处理异常。
(三)文件操作1、创建一个文本文件,并向其中写入一些数据。
2、读取该文件中的数据,并将其输出到控制台。
四、实验步骤(一)面向对象编程实践1、首先,在 IntelliJ IDEA 中创建一个新的 Java 项目。
2、然后,创建“Student”类,代码如下:```javapublic class Student {private String name;private int studentId;private double score;public String getName(){return name;}public void setName(String name) {thisname = name;}public int getStudentId(){return studentId;}public void setStudentId(int studentId) {thisstudentId = studentId;}public double getScore(){return score;}public void setScore(double score) {thisscore = score;}}```3、在主函数中创建“Student”类的对象,并对其属性进行赋值和输出,代码如下:```javapublic class Main {public static void main(String args) {Student student = new Student();studentsetName("张三");studentsetStudentId(1001);studentsetScore(905);Systemoutprintln("学生姓名:"+ studentgetName());Systemoutprintln("学生学号:"+ studentgetStudentId());Systemoutprintln("学生成绩:"+ studentgetScore());}}```(二)异常处理1、编写一个名为“divide”的方法,实现两数相除的运算,代码如下:```javapublic class ExceptionHandling {public static double divide(double num1, double num2) {if (num2 == 0) {throw new ArithmeticException("除数不能为 0");}return num1 / num2;}public static void main(String args) {try {double result = divide(10, 0);Systemoutprintln("结果:"+ result);} catch (ArithmeticException e) {Systemoutprintln("捕获到异常:"+ egetMessage());}}}```(三)文件操作1、创建一个名为“FileOperation”的类,用于实现文件的写入和读取操作,代码如下:```javaimport javaioBufferedWriter;import javaioFileWriter;import javaioIOException;import javaioBufferedReader;import javaioFileReader;public class FileOperation {public static void writeToFile(String filePath, String content) {try (BufferedWriter writer = new BufferedWriter(new FileWriter(filePath))){writerwrite(content);} catch (IOException e) {eprintStackTrace();}}public static String readFromFile(String filePath) {StringBuilder content = new StringBuilder();try (BufferedReader reader = new BufferedReader(new FileReader(filePath))){String line;while ((line = readerreadLine())!= null) {contentappend(line)append("\n");}} catch (IOException e) {eprintStackTrace();}return contenttoString();}public static void main(String args) {String filePath ="testtxt";String data ="这是写入文件的内容";writeToFile(filePath, data);String readData = readFromFile(filePath);Systemoutprintln("读取到的文件内容:\n" + readData);}}```五、实验结果(一)面向对象编程实践成功创建了“Student”类的对象,并正确地对其属性进行了赋值和输出。
接口实验报告
接口实验报告本次接口实验的主要目的是学习和掌握如何使用接口开发程序。
在本次实验中,我们选用了Java语言,利用Eclipse工具进行开发,测试并使用Postman进行接口测试。
实验过程及结果:1. 设计接口我们首先根据需求设计接口,包括接口的名称、参数、返回值以及其功能等。
比如,我们设计了一个查询学生信息的接口,接口名称为getStudent,参数为学生的ID,返回值为学生的信息。
该接口的功能是通过输入学生的ID,查询学生的基本信息,包括姓名、年龄以及查询时间等。
以下是该接口的代码示例:public interface QueryService {public Student getStudent(String id);}private String name;2. 实现接口接下来,我们需要具体实现这个接口。
实现接口的过程是编写接口的具体实现代码,包括参数的解析、操作数据库等。
为了实现getStudent接口,我们需要在数据库中查询学生的信息,并将其封装成一个Student对象返回。
以下是getStudent接口的具体实现代码示例:// 从数据库中查询学生信息student.setName("小明");return student;3. 发布接口当接口实现完成后,我们需要把它发布出去,供调用方使用。
在Java中,我们可以利用WebService发布接口。
例如,我们可以通过Eclipse工具,利用Axis2插件发布接口。
在发布接口时,需要指定WSDL文件的路径,以及服务的名称、命名空间等。
以下是发布接口的具体步骤:a. 在Eclipse中,选择File -> New -> Other -> Web Services -> Axis2 Serviceb. 输入Service name、Package name、Project name和Server runtime,并点击Nextc. 选择一个Java类并点击Nextd. 选择一个接口并点击Finishe. 在发布之前,需要先访问一下接口的方法并获取WSDL地址f. 在发布时,选择Generate All,并指定WSDL文件的路径4. 测试接口接口发布之后,我们需要进行测试。
Java语言程序设计实验六 类的继承(接口与包)实验报告
**大学Java语言程序设计实验报告m1.sum(100,200,300);System.out.println("sum="+m1.num1+"+"+m1.num2+"+"+m1.num3+"="+m1.sum);}}问题:a、子类的sum,num1,num2分别是多少,父类的sum,num1,num2 分别是多少,如何在main中输出父类的sum,num1,num2。
子类的sum,num1,num2分别是100,200,300父类的sum,num1,num2 分别是多少0,0,0使用super调用父类的构造方法,super(sum,num1,num2)b、就这个例子,谈谈你对覆盖的理解?2.运行下面的程序,理解方法的继承。
问题:a、为什么标有.①处可以直接使用,而不需要生成Sort3的对象,然后使用该对象. sort()调用sub_sort3是sort3的子类,继承了父类的方法B、程序实现什么功能?实现对三个数从大到小排序3.运行下面的程序,理解方法的重载。
class Sort2or3{double max1,max2,max3;Sort2or3(){max1=-1;max2=-1;4.运行下面的程序,理解方法的覆盖。
class sort_Demo{int i,j,k,swap;sort_Demo(){i=j=k=swap=0;}void sort(int t1,int t2[]){ //父类中的方法用来实现升序//用选择法按升序排列for(i=0;i<t1-1;i++){k=i;for(j=i+1;j<t1;j++)if(t2[j]<t2[k]) k=j;if (k!=i){swap=t2[i];t2[i]=t2[k];t2[k]=swap;}}}} }问题:比较3和4,谈谈你对重载和重写的认识,最好可以自己举例说明子类重写方法覆盖了父类的方法,那么子类对象调用发放一定调用的是重写方法,重写方法(覆盖方法)既可以操作继承的成员变量、调用继承的方法也可以操作子类新声明的成员变量、调用新定义的其他方法,但无法操作被子类隐藏的成员变量和方法。
java第六次实验报告接口.doc
1、实验题目体操比赛计算选手成绩的办法是去掉一个最高分和一个最低分再计算平均分,察一个班级的某科目的考试情况时,是计算全班学生的平均成绩。
School类都实现了ComputerAverage 接口,但实现方式不同。
而学校考Gymnastics类和2、程序代码interface ComputerAverage{public double average(double x[]);}class Gymnastics implements ComputerAverage{public double average(double x[]){int count=;double aver=0,temp=0;for(int i=0;i<count;i++){for(int j=i;j<count;j++){if(x[j]<x[i]){temp=x[i];x[i]=x[j];x[j]=temp;}}}for(int i=1;i<count-1;i++){aver=aver+x[i];}if(count>2)aver=aver/(count-2);elseaver=0;return aver;}}class School implements ComputerAverage{public double average(double x[]){int count=;double aver=0;for(int i=0;i<count;i++){aver=aver+x[i];}if(count>0)aver=aver/count;return aver;}}public class Estimator {public static void main(String args[]){double a[]={,,,,,,};double b[]={89,56,78,90,100,77,56,45,36,79,98};ComputerAverage computer;computer=new Gymnastics();double result=(a);//computer调用average(double x[])方法,将数组 a传递给参数x"%n");"体操选手最后得分: %\n",result);computer=new School();result=(b);//computer调用 average(double x[])方法,将数组 b 传递给参数 x" 班级考试平均分数:%\n",result);}}3、实验结果4、实验分析一个类可以实现多个接口,类通过使用关键字 implements 声明自己实现一个或多个接口,如果一个非抽象类实现了某个接口,那么这个类必须重写该接口的所有方法。
java接口的实现与运用实验总结
java接口的实现与运用实验总结Java接口的实现与运用实验总结一、引言在Java编程中,接口(Interface)被广泛应用于面向对象编程中,它定义了一组方法的规范,而不实现这些方法的具体逻辑。
通过接口的实现,不仅可以提高代码的重用性和灵活性,还可以实现多态编程。
本篇文章将对Java接口的实现与运用进行实验总结,并回答以下问题:1. 实验过程中你遇到了哪些问题?2. 你是如何解决这些问题的?3. 通过实验你获得了哪些经验和教训?二、实验过程1. 实验背景在编程过程中,经常需要定义一些规范,而不实现具体的逻辑,以便多个类来实现这些规范。
这时候,就可以使用接口来定义这些规范。
本次实验旨在加深对接口实现的理解,并掌握接口的运用。
2. 实验环境和工具实验使用Java编程语言,所需工具为Eclipse IDE。
为了更好地理解和实践接口的实现和运用,我们需要有一定的Java语言和面向对象编程的基础。
3. 实验步骤(1) 创建接口首先,我们需要创建一个接口,例如命名为Flyable,用于定义飞行的规范。
在接口中,可以定义多个抽象方法,例如fly()和land()。
(2) 实现接口接下来,我们需要创建一个类,例如Bird,通过实现接口Flyable来实现飞行的具体逻辑。
在实现类中,需要实现接口中定义的所有抽象方法。
(3) 使用接口最后,我们可以通过创建对象,调用接口中定义的方法来实现具体的功能,例如创建Bird对象,调用fly()和land()方法。
三、问题与解决1. 问题在实验过程中,我遇到了以下问题:- 如何正确定义和使用接口?- 如何实现接口中定义的方法?- 接口与抽象类的区别和联系是什么?2. 解决方案为了解决上述问题,我采取了以下解决方案:- 了解接口的基本概念和语法规则,以及如何定义和使用接口。
- 在实现接口时,需要通过关键字implements来实现接口,并实现接口中定义的所有抽象方法。
- 接口是一种完全抽象的类,它只提供了一组方法的规范,而没有具体的实现。
JAVA接口实验报告
《面向对象程序设计》实验报告实验(七)接口课程代码:1H10500学分:6实验类型:实践型实验学时:4个学时实验时间:2017.11.30 实验地点:5407班级:计算机164 专业:计算机科学与技术专业学号:2016011147 姓名:林文辉一、实验目的(1)掌握接口基础知识(2)掌握接口作为一种约定和能力的含义二、实验内容及步骤内容:接口的定义实现接口的类定义步骤:方案的设计与分析(类结构图。
)定义接口——接口的声明、接口体使用接口——通过子类implements三、实验过程及结果实验1代码:interface shape{public abstract double area();}class Circle implements shape{protected double radius;public Circle() { setRadius(0);}public Circle(double r) {setRadius(r);}public void setRadius(double r) {radius=(r>0?r:0);}public double getRadius() {return radius;}public double area() {return Math.PI*radius*radius;}}class Triangle implements shape{protected double x,y;public Triangle() {setxy(0,0);}public Triangle(double a,double b) {setxy(a,b);}public void setxy(double x,double y){this.x=x;this.y=y;}public double getx() {return x;}public double gety() {return y;}public double area() {return x*y/2;}}public class shapeTest {public static void main(String arg[]) {Circle c=new Circle(7);Triangle t=new Triangle(3,4);String output="";DecimalFormat p2=new DecimalFormat("0.00");output+="\n 半径为"+c.getRadius()+"圆的面积:"+p2.format(c.area());output+="\n 底为"+t.getx()+"高为"+t.gety()+"三角形面积:"+p2.format(t.area());JOptionPane.showMessageDialog(null, output,"接口实现和使用演示",RMATION_MESSAGE);System.exit(0);}结果:(该部分主要记录实验过程,包括实验代码及运行结果)四、实验小结接口相当于一种特殊的类,里面全部是由全局常量和公共的抽象方法,不含有构造方法。
JAVA第六次实验报告接口
实验一1、实验题目体操比赛计算选手成绩的办法是去掉一个最高分和一个最低分再计算平均分,而学校考察一个班级的某科目的考试情况时,是计算全班学生的平均成绩。
Gymnastics 类和School 类都实现了ComputerAverage接口,但实现方式不同。
2、程序代码interface ComputerAverage{public double average(double x[]);}class Gymnastics implements ComputerAverage{public double average(double x[]){int count=x.length;double aver=0,temp=0;for(int i=0;i<count;i++){for(int j=i;j<count;j++){if(x[j]<x[i]){temp=x[i];x[i]=x[j];x[j]=temp;}}}for(int i=1;i<count-1;i++){aver=aver+x[i];}if(count>2)aver=aver/(count-2);elseaver=0;return aver;}}class School implements ComputerAverage{public double average(double x[]){int count=x.length;double aver=0;for(int i=0;i<count;i++){aver=aver+x[i];}if(count>0)aver=aver/count;return aver;}}public class Estimator {public static void main(String args[]){double a[]={9.89,9.88,9.99,9.12,9.69,9.76,8.97};double b[]={89,56,78,90,100,77,56,45,36,79,98};ComputerAverage computer;computer=new Gymnastics();double result=computer.average(a);//computer调用average(double x[])方法,将数组a传递给参数xSystem.out.printf("%n");System.out.printf("体操选手最后得分:%5.3f\n",result);computer=new School();result=computer.average(b);//computer调用average(double x[])方法,将数组b传递给参数xSystem.out.printf("班级考试平均分数:%-5.2f\n",result);}}3、实验结果4、实验分析一个类可以实现多个接口,类通过使用关键字implements声明自己实现一个或多个接口,如果一个非抽象类实现了某个接口,那么这个类必须重写该接口的所有方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一1、实验题目体操比赛计算选手成绩的办法是去掉一个最高分和一个最低分再计算平均分,而学校考察一个班级的某科目的考试情况时,是计算全班学生的平均成绩。
Gymnastics 类和School 类都实现了ComputerAverage接口,但实现方式不同。
2、程序代码interface ComputerAverage{public double average(double x[]);}class Gymnastics implements ComputerAverage{public double average(double x[]){int count=x.length;double aver=0,temp=0;for(int i=0;i<count;i++){for(int j=i;j<count;j++){if(x[j]<x[i]){temp=x[i];x[i]=x[j];x[j]=temp;}}}for(int i=1;i<count-1;i++){aver=aver+x[i];}if(count>2)aver=aver/(count-2);elseaver=0;return aver;}}class School implements ComputerAverage{public double average(double x[]){int count=x.length;double aver=0;for(int i=0;i<count;i++){aver=aver+x[i];}if(count>0)aver=aver/count;return aver;}}public class Estimator {public static void main(String args[]){double a[]={9.89,9.88,9.99,9.12,9.69,9.76,8.97};double b[]={89,56,78,90,100,77,56,45,36,79,98};ComputerAverage computer;computer=new Gymnastics();double result=computer.average(a);//computer调用average(double x[])方法,将数组a传递给参数xSystem.out.printf("%n");System.out.printf("体操选手最后得分:%5.3f\n",result);computer=new School();result=computer.average(b);//computer调用average(double x[])方法,将数组b传递给参数xSystem.out.printf("班级考试平均分数:%-5.2f\n",result);}}3、实验结果4、实验分析一个类可以实现多个接口,类通过使用关键字implements声明自己实现一个或多个接口,如果一个非抽象类实现了某个接口,那么这个类必须重写该接口的所有方法。
5、实验练习School类如果不重写public double aversge(double x[])方法,程序编译时提示怎样的错误?答:SChool不是抽象的,并且未覆盖ComputerAverage中的抽象方法。
实验二1、实验题目货车要装载一批货物,货物由三种商品组成:电视、计算机和洗衣机,卡车需要计算出整批货物的重量。
2、实验代码interface ComputerWeight{public double computerWeight();}class Television implements ComputerWeight{public double computerWeight(){return 3.5;}}class Computer implements ComputerWeight{public double computerWeight(){return 2.67;}}class WashMachine implements ComputerWeight{public double computerWeight(){return 13.8;}}class Truck{ComputerWeight []goods;double totalWeights=0;Truck(ComputerWeight[] goods){this.goods = goods;}public void setGoods(ComputerWeight[] goods){this.goods = goods;}public double getTotalWeights(){totalWeights=0;for(int i=0;i<goods.length;i++){totalWeights = totalWeights + goods[i].computerWeight();}return totalWeights;}}public class CheckCarWeight{public static void main(String args[]){ComputerWeight []goods = new ComputerWeight[650]; //装载650件货物for(int i=0;i<goods.length;i++){ //分成三类if(i%3 == 0)goods[i]=new Television();else if(i%3 == 1)goods[i]=new Computer();else if(i%3 == 2)goods[i]=new WashMachine();}Truck truck =new Truck(goods);System.out.printf("\n货车装载的货物重量:%-8.5fkg\n",truck.getTotalWeights());goods = new ComputerWeight[68]; //68件货物for(int i=0;i<goods.length;i++){ //分成两类if(i%2 == 0)goods[i]=new Television();elsegoods[i]=new WashMachine();}truck.setGoods(goods);System.out.printf("货车装载的货物重量:%-8.5fkg\n",truck.getTotalWeights());}}3、实验结果4、实验分析接口回调是指:可以把使用某一接口的类型创建的对象引用赋给该接口声明的接口变量中,那么该接口变量就可以调用被实现的接口中的方法,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程成为对象功能的接口回调。
接口的方法不一定相同,接口回调可能产生不同的行为。
5、实验练习请在实验基础上再编写一个实现ComputerWeight接口的类,比如Refrigerrator。
这样一来,货车装载的货物中就可以有Refrigerrator类型的对象。
当系统增加一个实现ComputerWeight接口的类后,Truck类需要进行修改吗?答:代码:class Refrigerrator implements ComputerWeight{public double computerWeight(){return 12.8;}}实验三1、实验题目小狗在不同环境条件下可能呈现不同的状态表现,要求接口封装小狗的状态。
具体要求如下:(1)编写一个接口DogState,该接口有一个名为void showState()方法。
(2)编写一个Dog类,该类中有一个DogState接口声明的变量state,另外,该类有一个show()方法,在该方法中让接口state回调 showState()方法。
(3)编写若干个实现DogState接口的类,负责刻画小狗的各种状态。
(4)编写主类,在主类中实现测试小狗的各种状态。
2、程序代码interface DogState{public void showState();}class SoftlyState implements DogState{public void showState(){System.out.println("听主人的命令");}}class MeetEnemyState implements DogState{public void showState(){System.out.println("狂叫,并冲过去狠咬敌人");}}class MeetFriendState implements DogState{public void showState(){System.out.println("晃动尾巴,表示欢迎");}}class MeetAnotherdogState implements DogState{public void showState(){System.out.println("嬉戏");}}class Dog{DogState state;public void show(){state.showState();}public void setState(DogState s){state=s;}}public class CheckDogState{public static void main(String args[]){Dog yellowDog=new Dog();System.out.print("狗在主人面前:");yellowDog.setState(new SoftlyState());yellowDog.show();System.out.print("狗遇到敌人:");yellowDog.setState(new MeetEnemyState());yellowDog.show();System.out.print("狗遇到朋友:");yellowDog.setState(new MeetFriendState());yellowDog.show();System.out.print("狗遇到同类:");yellowDog.setState(new MeetAnotherdogState());yellowDog.show();}}3、实验结果4、实验分析面向接口编程是指当设计某种重要的类时,不让该类面向具体的类,而是面向接口,即所设计中的重要数据是接口声明的变量,而不是具体声明的对象。