实验3_Java类的继承和接口的定义和使用

来源:互联网 发布:单片机初始化程序 编辑:程序博客网 时间:2024/05/23 19:17

本次有三题:学会Java类的继承、接口的定义和使用

 

// Ex3_1.java/** * 题目要求: * 修改例5.7(P95)实现在页面中拖动鼠标画出矩形,矩形的对角线为点击并拖动鼠标形成的直线线段。 * 源程序保存为Ex3_1.java。 * 使用到的绘制矩形函数:drawRect(x,y,width,height);  * 其中x,y是矩形左上角的坐标,width、height是矩形的宽和高。 **/ import java.applet.Applet; import java.awt.*; import java.awt.event.*; public class Ex3_1 extends Applet implements MouseListener, MouseMotionListener { // MouseListener 用于接收组件上“感兴趣”的鼠标事件(按下、释放、单击、进入或离开)的侦听器接口。 // MouseMotionListener 用于接收组件上的鼠标移动事件的侦听器接口。(对于单击和其他鼠标事件,请使用 MouseListener。)  int x1, y1, x2, y2; public void init() { addMouseListener(this); addMouseMotionListener(this); }  public void paint(Graphics g) { // 计算长宽 int width = x2 - x1; if (width < 0) { width = 0 - width; } int height = y2 - y1; if (height < 0) { height = 0 - height; }  // 确认哪边为原点坐标 // 这里有四种情况,当设x1, y1 为原点时,画矩形时另一个点会在四个像限中的其中一个 // 那么,此时,必须得改变原点坐标,使其输出,以最小的x, y 作为原点 if (x2 < x1 && y2 > y1){g.drawRect(x2,y1,width,height); } else if (x2 > x1 && y2 > y1){g.drawRect(x1,y1,width,height); } else if (x2 < x1 && y2 < y1){g.drawRect(x2,y2,width,height); } else {g.drawRect(x1,y2,width,height); } } public void mousePressed(MouseEvent e)  // 按下鼠标,记录起点 { x1 = e.getX(); y1 = e.getY(); } public void mouseClicked(MouseEvent e){} public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} public void mouseReleased(MouseEvent e){} /**  * 操作:void mouseDragged(MouseEvent e)  * 鼠标按键在组件上按下并拖动时调用。  * 在释放鼠标按键前,MOUSE_DRAGGED 事件被连续地传递到发起该拖动的组件(而不管鼠标位置是否处于该组件的边界内)。   **/ public void mouseDragged(MouseEvent e)   // 记录终点坐标并刷新屏幕显示 { x2 = e.getX(); y2 = e.getY(); repaint(); } public void mouseMoved(MouseEvent e){} }

 

<html><applet code = "Ex3_1.java" height = 600 width = 800></applet></heml>


上题运行结果:


 

 

// Ex3_2.java/** * 题目要求:按如下要求编写程序,定义类A和类B及添加相应的成员变量、成员方法: * 类A:两个成员变量: * int类型变量z,赋值为 16 ; * char类型变量x,赋值为 'A' 。 *  一个成员方法: *   myPrint( ):用于在屏幕上输出z和x的值。 * 类B:类A的子类,再定义两个成员变量: *   double类型的变量y,赋值为16.0; *   String类型的变量s,赋值为“java program”。 *   两个个成员方法: *    myPrint(),用于在屏幕上输出y和s的值。 *    printAll( ):分别调用父类和子类的方法myPrint( )。 * 编写main方法测试程序,创建B的对象b,调用printAll方法显示z、x、y、s的值。 **/import java.lang.*;public class Ex3_2{public static void main(String [] args){   B test = new B();   test.printAll();}}class A{int z = 16;char x = 'A';public void myPrint(){System.out.println("类A: z = " + z + ", x = " + x); }}class B extends A{double y = 16.0;String s = "java program";public void myPrint(){System.out.println("类B: y = " + y + ", s = " + s); }public void printAll(){super.myPrint();myPrint();}}


 

// Ex3_3.java/** * 题目要求: * 定义一个接口Areaable,接口中定义一个求面积的抽象方法:getArea()。 * 然后声明一个类Circle实现Areaable接口,添加成员变量记录圆半径,实现接口中的方法求圆面积, * 并编写main方法测试程序,创建对象,计算并输出其面积。 **/ public class Ex3_3 { public static void main(String [] args) { Circle test = new Circle(); test.setR(10.0); double result = test.getArea(); System.out.println("求得面积为:" + result); } }interface Arreaable { double getArea(); } class Circle implements Arreaable { double r; public void setR(double R){r = R; } public double getArea(){ return r * r; } }


 

原创粉丝点击