面对对象程序设计(Java)实验2

实验内容

一、实验目的

  1. 掌握Java语言的类和对象的定义及使用的基本方法。
  2. 掌握继承机制以及子类和父类之间的转换。
  3. 掌握多态性的概念及程序设计。

二、实验内容
上机实现下列程序并观察程序的运行情况:

  1. 声明一个表示圆的类,包含计算周长和面积的方法,保存在文件Circle.java 中。然后编写测试类,保存在文件ShapeTester.java中,并与Circle.java放在相同的目录下,进行测试。
  2. 定义一个抽象类Shape,它有一个抽象方法calArea代表求图形的面积;分别定义Shape的两个子类Triangle、Rectangle代表三角形、矩形,这两个类分别具体实现calArea方法求自己的面积,在main方法里,利用这三个类创建对象展示Java的多态性。

实验内容一

Circle.java

package test2;

public class Crycle {
    public double r;
    public static double perimeter(double r){
        double c;
        c = 2 * 3.14159 * r;
        return c;
    }
    public static double area(double r){
        double s;
        s = 3.14159 * 3.14159 * r;
        return s;
    }
}

ShapeTester.java

package test2;
import java.util.Scanner;
public class ShapeTester {
    public static void main(String [] args){
        Crycle crycle = new Crycle();
        Scanner input = new Scanner(System.in);
        crycle.r = input.nextDouble();
        double c,s;
        c = Crycle.perimeter(crycle.r);
        s = Crycle.area(crycle.r);
        java.text.DecimalFormat df = new java.text.DecimalFormat("0.000");
        System.out.println("周长:" + df.format(c));
        System.out.print("面积:" + df.format(s));
    }
}

实验内容二

Shape.java

package test2;
import java.util.Scanner;


abstract class Shape {
    abstract double calArea();
}

class Rectangle extends Shape{
    double a;
    double b;

    double calArea(){
        return  this.a * this.b / 2;
    }
}

class Triangle extends Shape{
    double h;
    double d;
    double calArea(){
        return  this.h * this.d / 2;
    }
}

class ShapeTest2 {
    public static void main(String[] args){
        Rectangle rect = new Rectangle();
        Scanner input = new Scanner(System.in);
        System.out.println("矩形的参数:");
        rect.a = input.nextDouble();
        rect.b = input.nextDouble();
        Triangle tri = new Triangle();
        System.out.println("三角形的底:");
        tri.d = input.nextDouble();
        System.out.println("三角形的高:");
        tri.h = input.nextDouble();
        double rect_s = rect.calArea();
        System.out.println("矩形的面积为:" + rect_s );
        double tri_s = tri.calArea();
        System.out.println("三角形的面积为:" + tri_s );
    }
}
posted @ 2022-03-25 19:15  CK_0ff  阅读(258)  评论(0编辑  收藏  举报