java 画布实验报告_Java实验报告五

这篇实验报告详细介绍了如何在Java中使用抽象类和接口来实现图形的面积计算。首先,定义了一个抽象类`Shape`,包含计算面积的抽象方法,然后分别创建了`Triangle`、`Rectangle`和`Circle`类继承`Shape`并实现具体面积计算。接着,定义了一个`Shape`接口,`Line`和`Circle`类实现了该接口并提供了大小的输出方法。最后,通过主函数`Test`展示了不同图形的面积和大小的计算及输出结果。
摘要由CSDN通过智能技术生成

Java实验报告五

一、题目

(一)抽象类的使用

1.设计一个类层次,定义一个抽象类--形状,其中包括有求形状的面积的抽象方法。 继承该抽象类定义三角型、矩形、圆。 分别创建一个三角形、矩形、圆存对象,将各类图形的面积输出。

注:三角形面积s=sqrt(p*(p-a)*(p-b)*(p-c)) 其中,a,b,c为三条边,p=(a+b+c)/2

2.编程技巧

(1)抽象类定义的方法在具体类要实现;

(2)使用抽象类的引用变量可引用子类的对象;

(3)通过父类引用子类对象,通过该引用访问对象方法时实际用的是子类的方法。可将所有对象存入到父类定义的数组中。

(二)使用接口技术

1.定义接口Shape,其中包括一个方法size(),设计“直线”、“圆”、类实现Shape接口。分别创建一个“直线”、“圆”对象,将各类图形的大小输出。

2.编程技巧

(1)接口中定义的方法在实现接口的具体类中要重写实现;

(2)利用接口类型的变量可引用实现该接口的类创建的对象。

二、实验代码

(一)抽象类的使用

public abstract class Shape {

public void Area() {

System.out.println(this.getArea());

}

public abstract String getArea();

}

public class Triangle extends Shape {

private double a, b, c;

public double getA() {

return a;

}

public void setA(double a) {

this.a = a;

}

public double getB() {

return b;

}

public void setB(double b) {

this.b = b;

}

public double getC() {

return c;

}

public void setC(double c) {

this.c = c;

}

public Triangle(double a, double b, double c) {

super();

this.a = a;

this.b = b;

this.c = c;

}

public String getArea() {

double p = (a + b + c) / 2;

return "三角形面积:" + Math.sqrt(p * (p - a) * (p - b) * (p - c));

}

}

public class Rectangle extends Shape {

private double length;

private double width;

public double getLength() {

return length;

}

public void setLength(double length) {

this.length = length;

}

public double getWidth() {

return width;

}

public void setWidth(double width) {

this.width = width;

}

public Rectangle(double length, double width) {

super();

this.length = length;

this.width = width;

}

public String getArea() {

return "矩形面积:" + this.width * this.length;

}

}

public class Circle extends Shape {

private double r;

public double getR() {

return r;

}

public void setR(double r) {

this.r = r;

}

public Circle(double r) {

super();

this.r = r;

}

public String getArea() {

return "圆形面积:" + Math.PI * r * r;

}

}

public class Test {

public static void main(String[] args) {

Shape shape1 = new Triangle(2, 2, 2);

Shape shape2 = new Rectangle(2, 3);

Shape shape3 = new Circle(2);

shape1.Area();

shape2.Area();

shape3.Area();

}

}

(二)使用接口技术

public interface Shape {

public void size();

}

public class Line implements Shape {

private double length;

public double getLength() {

return length;

}

public void setLength(double length) {

this.length = length;

}

public Line(double length) {

super();

this.length = length;

}

public void size() {

System.out.println("直线大小:" + length + "米");

}

}

public class Circle implements Shape {

private double r;

public double getR() {

return r;

}

public void setR(double r) {

this.r = r;

}

public Circle(double r) {

super();

this.r = r;

}

public void size() {

System.out.println("圆的大小:" + Math.PI * r * r + "平方米");

}

}

public class Test {

public static void main(String[] args) {

Shape shape1=new Line(1);

Shape shape2=new Circle(2);

shape1.size();

shape2.size();

}

}

三、运行结果截图

72533b0ea7beeb02951cd58c39c557f6.png

a4e5f5ea3013d713f7e4c07ef7ebd92c.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值