java多态性
1、 实验内容或题目
(1) 定义一个抽象基类Shape,它包含一个抽象方法getArea(),从Shape类派生出Rectangle和Circle类,这两个类都用getArea()方法计算对象的面积。编写编写应用程序使用Rectangle类和Circle类。
(2) 定义一个接口ClassName,接口中只有一个抽象方法getClassName()。设计一个类Horse,该类实现接口ClassName中的方法getClassName(),功能是获取该类的类名。编写应用程序使用Horse类。
(3) 定义接口myItfc,接口中只有一个名为area的方法,该方法有一个double类型参数,返回类型也为double。编写一个应用程序,并实现接口myItfc,接口中area方法的实现是返回参数的立方值;在应用程序中调用该方法并输出其结果。
(4) 编写小程序,在小程序窗口中显示字符串“java程序设计”,按下键盘上的箭头键,可按照箭头方向移动(提示:得到键盘键代码的方法是e.getKeyCode(),上、下、左、右键的编码分别用常量VK_UP 、VK_DOWN 、VK_LEFT 、VK_RIGHT表示)。
2、实验目的与要求
⑴ 多态性。
⑵ 接口的定义和实现接口。
⑶ 内部类、匿名内部类对象的的编写和使用。
3、 实验步骤与源程序
⑴ 实验步骤
编辑源文件,可用Jcreater或EditPlus 2软件编辑
编译,若编译成功,则进入运行,进入DOS下运行 javac XX.java;若不成功,则返回编辑源文件
运行文件java XX 或appletviewer XX.htm等
⑵ 源代码
题目一:
public class UseAbstract
{
public static void main(String[] args)
{
Shape rec =new Rectangle(4,7);
Shape cir = new Circle(8);
System.out.println("长方形的面积:"+rec.getArea());
System.out.println("圆的面积:"+cir.getArea());
}
}
abstract class Shape
{
public abstract double getArea();
}
class Rectangle extends Shape
{
double d,w;
public Rectangle(double d,double w)
{
this.d=d;
this.w=w;
}
public double getArea()
{
return d*w;
}
}
class Circle extends Shape
{
double r;
public Circle(double r)
{
this.r=r;
}
public double getArea()
{
return Math.PI*r*r;
}
}
题目二:
interface ClassName
{
public abstract void getClassName();
}
class Horse implements ClassName
{
public void getClassName()
{
System.out.println("该类名为:Horse");
}
}
public class UseInterface
{
public static void main(String[] args)
{
Horse h =new Horse();
h.getClassName();
}
}
题目三:
public class Test
{
public static void main(String[] args)
{
A a=new A();
System.out.println(a.area(6));
}
}
interface myItfc
{
public double area (double a);
}
class A implements myItfc
{
public double area (double a)
{
return a*a*a;
}
}
题目四:
import java.awt.*;
import java.applet.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class AppMove extends Applet implements KeyListener{
int x=200,y=100;
public void paint(Graphics g) {
g.drawString("Welcome to Java!!", x, y );
}
public void init()
{
addKeyListener(this);
}
public void keyPressed(KeyEvent e){
if(e.getKeyCode()==KeyEvent.VK_UP)
y-=3;
else if(e.getKeyCode()==KeyEvent.VK_DOWN)
y+=3;
else if(e.getKeyCode()==KeyEvent.VK_LEFT)
x-=3;
else if(e.getKeyCode()==KeyEvent.VK_RIGHT)
x+=3;
repaint();
}
public void keyReleased(KeyEvent e){
}
public void keyTyped(KeyEvent e){
}
}
4、 测试数据与实验结果(可以抓图粘贴)
题目一:
题目二:
题目三:
题目四:
5、 结果分析与实验体会
本次实验是java程序语言设计的第优次实验了,这优次实验对我们的非常重要,有助于帮助我们理解java程序设计语言。
实验还是4题。第一题是定义一个抽象基类Shape,用getArea()方法计算对象的面积。第二题是设计一个类Horse,获取该类的的类名。第三题编写一个应用程序,并实现接口myItfc,接口中area方法的实现是返回参数的立方值;在应用程序中调用该方法并输出其结果。第四题做的是显示字符串“java程序设计”,按下键盘上的箭头键,可按照箭头方向移动。这四道题目与以前做的大致相同。
java课程学习已经接近了尾声。在这一个学期不到的时间内,我们学习到了java程序语言设计。Java 程序设计与以前我们学过的C\C++有许多的类似之处。所以也能较好的理解这门课程,做实验是为了将我们书本上学到的知识转化为实际的操作经验,能动手编程、调试,是与我们学校给我们定义技术型本科相符合的。我们现在要做好java程序设计的期末复习工作,更好的学习和掌握这门课程。379