面对对象程序设计(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;
import java.lang.Math;
public class Crycle {
    public double r;
    public static double perimeter(double r){
        double c;
        c = 2 * Math.PI * r;
        return c;
    }
    public static double area(double r){
        double s;
        s = Math.PI * r * 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;
    }
}

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 );
    }
}
  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chiaki_0ff

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值