昆明理工大学信息工程与自动化学院学生实验报告
( 2011—20##学年第一学期)
课程名称:java程序设计 开课实验室: 年 月 日
一、实验目的及内容
目的:掌握Java中接口的概念
内容:
1. 完成下面要求的程序
u 定义一个接口Shape,它含有一个抽象方法 int area( )
Public interface Shape{
{
Public abstract double area1();
System.out.println(area= width*height/2);
}
{
Public abstract double area2();
System.out.println(area= width*height);
}
}
u 定义一个表示三角形的类Triangle,该类实现接口Shape。此类中有两个分别用于存储三角形宽度和高度的private成员变量int width和int height,在该类实现的方法area中计算并返回三角形的面积。
Public class Triangle
{
Private int width;
Private int height;
Public double area()
{
Return Shape.area1(width,height);
}
Public static void main(String args[])
{
System.out.println(area )
}
}
u 定义一个表示矩形的类Rectangle,该类实现接口Shape。此类中有两个分别表示矩形长度和宽度的成员变量int width和int height,在该类实现的方法area中计算并返回矩形的面积。
Public class Rectangle
{
Private int width;
Private int height;
Public double area()
{
Return Shape.area2(width,height);
}
Public static void main(String args[])
{
System.out.println(area )
}
}
u 定义一个类ShapeTest,该类中有一个方法如下:
public static void showArea(Shape s){
System.out.println(“area=”+s.area());
}
在ShapeTest类中定义main函数,在main函数中创建Triang类的对象和Rectangle类的对象,并调用方法showArea两次以输出两个对象的面积。
u 思考:两次调用showArea方法时调用的area方法各是在哪个类中定义的方法?答:三角形调用showArea方法时调用的area方法是main函数中Triangle类中定义的方法,而矩形调用showArea方法时调用的area方法是main函数中Rectangle类中定义的方法
二、要求
给出实验内容1的程序设计、实现和结果,并对结果进行分析。
通过利用接口求解三角形和矩形的面积,使我大致掌握了接口的意义和作用,可以被多个类实现,在该程序中,接口Shpape中含有抽象方法area,类Triangle和类Rectangle共同调用了接口Shape中的抽象方法area,来求解不同形状的面积,接口还提供方法声明与方法相分离的机制,使实现接口的多个类表现出共同的行为能力,接口中声明的抽象方法在实现接口的多个类中表现出多态性。
姓名 教师评定_________________
实验题目 继承与接口
一、 实验目的与要求
实验目的:
1、掌握类的继承关系。
2、掌握接口的定义与使用。
实验要求:
按下列要求编写Java程序:
1、定义接口Printx,其中包括一个方法printMyWay(),这个方法没有形参,返回值为空。
2、编写矩形类,矩形类要求实现Printx接口,有求面积、求周长的方法,printMyWay()方法要能显示矩形的边长、面积和周长。
3、编写正方形类作为矩形类的子类,正方形类继承了矩形类求面积和周长的方法,新增加求对角线长的方法,重写printMyWay()方法,要求该方法能显示正方形的边长、面积、周长和对角线长。
二、 实验方案
按照给定要求编写程序,代码如下:
interface Printx //定义接口Printx
{
void printMyWay();
}
class rectangle implements Printx //矩形类并实现Printx接口
{
double a,b,area,length;
rectangle(double a, double t b)
{
this.a=a;
this.b=b;
}
double getArea()
{
area=a*b;
return area;
}
double getLength()
{
length=(a+b)*2;
return length;
}
@Override
public void printMyWay() //实现接口Printx中的方法 {
System.out.println("矩形长为:"+a);
System.out.println("矩形宽为:"+b);
System.out.println("矩形面积为:"+getArea());
System.out.println("矩形周长为:"+getLength()); }
}
class square extends rectangle //正方形类继承矩形类 {
square(double a, double b)
{
super(a,b);
}
@Override
double getArea()
{
return super.getArea();
}
@Override
double getLength()
{
return super.getLength();
}
double diagonal() //求得正方形的对角线 {
return Math.sqrt(a*a+b*b);
}
@Override
public void printMyWay()
{
System.out.println("正方形的边长为:"+a);
System.out.println("正方形面积为:"+getArea());
System.out.println("正方形周长为:"+getLength());
System.out.println("正方形对角线为:"+diagonal());
}
}
public class Javahomework
{
public static void main(String[] args) {
rectangle R=new rectangle(5,9);
square S=new square(4,4);
R.printMyWay();
S.printMyWay();
}
}
三、 实验结果和数据处理
四、 结论
本实验通过java中接口和继承的相关知识,实现对矩形和正方形面积,周长等进行运算。并利用长宽为5和9的矩形,以及边长为4的正方形进行测试,测试结果与预测结果相同,则此程序符合解题要求。
五、 问题与讨论
接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?
1.接口可以继承接口..但是要使用extends~而不是用implements
如:interface a{}
interface b extends a{}
2.抽象类可以实现接口..
比如java.util中的AbstractCollection类就是实现的Collection接口
3.抽象类可以继承实体类
下面这段执行无误的代码说明的所有的问题:
interface MyInterface {
}
interface AnotherInterface extends MyInterface {
}
class EntityClass {
}
abstract class AbstractClass extends EntityClass implements MyInterface {
}
昆明理工大学信息工程与自动化学院学生实验报告20xx20xx学年第一学期课程名称java程序设计开课实验室年月日一实验目的及内容目…
姓名教师评定实验题目继承与接口一实验目的与要求实验目的1掌握类的继承关系2掌握接口的定义与使用实验要求按下列要求编写Java程序1…
广东工业大学实验报告学院专业班学号姓名成绩评定实验5题目继承与接口实验课程名称Java与面向对象程序设计一实验目的1学习类的继承子…
JAVA课程标准实验报告学号1040501211姓名陈嘉生江苏科技大学计算机科学与工程学院基础部1实验一流程控制语句一实验目的12…
成绩面向对象原理与Java实践课程实验报告实验2继承与接口姓名班级学号实验地点实验时间指导教师一实验目的掌握类的继承机制掌握成员变…
北京联合大学信息学院“面向对象程序设计”课程上机实验报告题目:JAVA上机实验心得体会姓名(学号):专业:计算机科学与技术编制时间…
Homework3实验报告一实验目的与要求1掌握Java中类和接口的基本知识2继承的基本知识3集合的基本操作二实验内容1PIMCo…
浙江理工大学Java程序设计实验报告20xx20xx学年第二学期学院班级姓名学号任课教师信息学院11数字媒体技术2周咪咪20xx3…
JAVE实验报告学号姓名班级指导教师129074401李阳网124柯栋梁安徽工业大学计算机学院20xx年1月实验一利用JAVA反射…
Java课程设计报告学号姓名班级指导教师129074068叶玉虎计122班柯栋梁安徽工业大学计算机学院20xx年12月实验一利用J…