实验报告
课程: Java程序设计实验 学期: 20##-2011学年第一学期 任课教师:
专业: 软件工程 学号: 姓名: 成绩:
实验8 接口
1. 程序一接口Playing.java:
源程序代码如下:
publicinterface Playing
{
publicabstract String play(); //抽象函数
}
2.程序二Child. java:
源程序代码如下:
publicclass Child implements Playing
{
public String play() //实现抽象函数
{
String str = "I am a child and I am playing a game.";
return str;
}
}
3.程序三Musician. java:
源程序代码如下:
publicclass Musician implements Playing
{
public String play() //实现抽象函数
{
String str = "I am a musician and I am playing a song.";
return str;
}
}
4.程序四Actor. java:
源程序代码如下:
publicclass Actor implements Playing
{
public String play() //实现抽象函数
{
String str = "I am an actor and I am playing a part.";
return str;
}
}
5.程序五UsePlaying. java:
源程序代码如下:
import javax.swing.JOptionPane;
publicclass UsePlaying {
publicstaticvoid main(String[] args)
{
Playing child = new Child();
Playing musician = new Musician();
Playing actor = new Actor();
String str1 = child.play();
String str2 = musician.play();
String str3 = actor.play();
JOptionPane.showMessageDialog(null,str1 + "\n" + str2 + "\n"
+ str3 + "\n\n" + str4);
}
}
执行结果截图:
第二篇:云大JAVA实验7
云南大学软件学院
实 验 报 告
课程名称:《JAVA程序设计实验》实验名称: 实验七 继承
学 号: 姓 名:
Lab # 7
一、实验目的;
熟悉掌握java程序,对继承有一定的了解
二、实验过程;
实验代码和实验结果;
I 程序1
程序源码
课程类CollegeCourse.java:
package edu.ynu.lab7;
public class CollegeCourse
{
protected int flag;;
public CollegeCourse(int F)
{
flag=F;
}
public double cost() //设置课程费用
{
if(flag == 001)
return 180;
else if(flag == 002)
return 170;
else if(flag == 003)
return 160;
else if(flag == 004)
return 150;
else if(flag == 005)
return 140;
else
return 100;
}
}
实验类;Lab.java
package edu.ynu.lab7;
public class Lab extends CollegeCourse //继承CollegeCourse
{
public Lab(int F)
{
super(F);
}
@Override
public double cost() //按照课程设置实验
{
if(super.flag == 001)
return 25;
else if(super.flag ==002)
return 20;
else if(super.flag == 003)
return 15;
else if(super.flag == 004)
return 14;
else if(super.flag == 005)
return 18;
else
return 10;
}
}
主程序UserCourse:
package usecourse;
import java.util.Scanner;
import edu.ynu.lab7.*;
public class UseCourse {
int flag;
UseCourse()
{
System.out.println("Input a cources number:you can input 001,002,003,004 or 005"); Scanner sc=new Scanner(System.in);
flag=sc.nextInt(); //根据输入选择调用输出
CollegeCourse course = new CollegeCourse(flag);
CollegeCourse lab = new Lab(flag);
System.out.println( "The cost of your course is $" + course.cost());
System.out.println( "There is a $" + lab.cost() + " lab fee.");
System.out.println("The cost of your course is $" + (course.cost()+lab.cost()));
}
public static void main(String[] args)
{
UseCourse UseCourse=new UseCourse();
}
}
运行结果如图(1)图(2)所示
//图(1)
//图(2)
Ⅱ程序2
主程序UseAuto.java
import newpackage.*;
public class UseAuto {
public static void main(String[] args)
{
Auto ford = new Ford();
Auto chevy = new Chevy();
Auto BMW=new BMW();
ford.setPrice(20000); //设置价格
chevy.setPrice(22000); //设置价格
BMW.setPrice(35000); //设置价格
System.out.println( "A new " + ford.getMaker() + " costs $"
+ ford.getPrice()) ;
System.out.println("A new " + chevy.getMaker() + " costs $"
+ chevy.getPrice()) ;
System.out.println( "A new " + BMW.getMaker() + " costs $"
+ BMW.getPrice()) ;
}
}
抽象类Auto.java
package newpackage;
public abstract class Auto
{
private String Maker = null;
protected double Price;
public void setMaker(String maker) //设置制造商
{
this.Maker = maker;
}
public String getMaker() //返回制造商
{
return Maker;
}
public abstract void setPrice(double price); //设置价格
public double getPrice() //返回价格
{
return Price;
}
}
子类Chevy.java
package newpackage;
public class Chevy extends Auto
{
public Chevy()
{
setMaker("Chevy"); //设置制造商
}
@Override
public void setPrice(double price) //实现抽象函数
{
this.Price = price;
}
}
子类Ford.java
package newpackage;
public class Ford extends Auto
{
public Ford()
{
setMaker("Ford"); //设置制造商
}
@Override
public void setPrice(double price) //实现抽象函数
{
this.Price = price;
}
}
子类BMW.java
package newpackage;
public class BMW extends Auto
{
publicBMW()
{
setMaker("BMW"); //设置制造商
}
@Override
public void setPrice(double price) //实现抽象函数
{
this.Price = price;
}
}
//运行结果如图(3)所示
//图(3)
三、实验小结;
通过此次实验我了解了包的运用,抽象类的使用,明白包的引用和抽象类的相关定义和使用规则,对关键字extends有了一定的了解。了解子类与父类的关系。子类用extends表示子类由父类派生。