Java接口与异常实验报告

这篇实验报告涵盖了Java接口和异常的使用。首先,介绍了如何设计BorderColorable和SolidColorable接口,以及Shape2D抽象类和其子类,如Circle、Triangle和Rectangle。Rectangle同时实现了两个接口。CostCalculator类用于计算着色成本。接着,报告详细描述了如何引发并处理Java的OutOfMemoryError,通过ArrayList不断分配内存,然后捕获异常,尝试恢复错误,通过垃圾回收释放内存。报告最后讨论了OOM概念和ArrayList的相关知识。
摘要由CSDN通过智能技术生成

【任务一】:假设默认长度单位为米,编写一个计算为各种形状着色花费的程序。
要求:

  1. 编写 BorderColorable 接口,要求:
  • 具有方法 void paintBorder(),在实现类中该方法需要输出“已经将什么形状的边着色”。
  • 方法 boolean isBorderPainted(),返回形状的边是否已经着色。
  1. 编写 SolidColorable 接口,要求:
  • 具有方法 void paintShape(),在实现类中该方法需要输出“已经将什么形状进行着色”。
  • 方法 boolean isShapePainted(),返回形状是否已经着色。
  1. Shape2D 是一个抽象类,是所有形状的父类:
    Shape2D 具有抽象方法 double getPerimeter()和 double getArea()分别表示获取形状的周长和面积。
  • 其中圆(Circle),三角形(Triangle)和长方形(Rectangle)均继承自 Shape2D 类,而 Square 继承自 Rectangle 类。
  • Circle 实现了 BorderColorable 接口,Triangle 实现了 SolidColorable 接口,而 Rectangle 同时实现了 BorderColorable接口和 SolidColorable 接口。
  1. CostCalculator 类用来计算为边着色和为形状着色所消耗的花费。
  • 构造函数 CostCalculator(double borderCost, double solidCost),其中 borderCost 表示画 1 米的边需要的单价,
    solidCost 表示画 1 平方米的边需要消耗的单价。
  • double calculate(Shape2D shape)用来计算实际为形状 shape 着色需要的花费。
  • 形状着色的花费计算只计算已经着色的部分,且花费总额为边着色和为形状着色的花费的总和。
  1. 写一个测试类测试你的程序。
    在这里插入图片描述
    首先,让我们来分析一下,要写接口和抽象类,基本语句应该都清楚(那么就po几段代码来感受下,抽象类如何定义以及记住:抽象类里面的方法必须实现
/**
 * @Author:苘山楂树
 * @Description:Shape2D抽象类,是所有形状的父类
 * @Date: 2019/10/26
 * @Modified By:苘山楂树
 */

public abstract class Shape2D {
   
    public abstract double getPerimeter();  //计算周长
    public abstract double getArea();  //计算面积
}

然后就是抽象类里面的其他子类了,由于Rectangle和Square比较特殊,故po出代码看看之前写Square的时候出现了什么问题.

/**
 * @Author:苘山楂树
 * @Description:矩形
 * @Date: 2019/10/26
 * @Modified By:苘山楂树
 */

public class Rectangle extends Shape2D implements BorderColorable,SolidColorable{
   
    private double length;
    private double width;
    private boolean isShapePainted = false;
    private boolean isSlidePainted = false;

    public Rectangle(double length, double width) {
   
        this.length = length;
      
包与接口实验报告 实验 包与接口 【实验目的】 1. 了解Java 中包(package)、接口(interface)的作用。 2. 掌握包、接口设计方法。 【实验要求】 1. 了解Java 系统包的结构。 2. 掌握创建自定义包的方法。 3. 掌握使用系统接口的技术和创建自定义接口的方法。 【实验步骤】 一.了解并使用Java 的系统包 1. API 包、接口异常处理的作用 包是类和接口的集合。利用包可以把常用的类或功能相似的类放在一个包中。Java 语言提供系统包,其中包含了大量的类,可以在编写Java 程序时直接引用它们。为便于管理和使用它们,将这些类分为了不同的包。包又称类库或API 包,所谓API(Application Program Interface)即应用程序接口。API 包—方面提供丰富的类与方法供大家使用,如画图形、播放声音等,另一方面又负责和系统软硬件打交道,圆满实现用户程序的功能。所有Java API 包都以“java.”开头,以区别用户创建的包。 常见Java系统包及其作用: 1)语言包(java.lang):提供的支持包括字符串处理、多线程处理、异常处理、数学函数处理等,可以用它简单地实现Java程序的运行平台。 2)实用程序包(java.util):提供的支持包括哈希表、堆栈、可变数组、时间和日期等。 输入输出包(java.io):用统一的流模型来实现所有格式的I/O,包括文件系统、网络、输入。 3)网络包(java.net):支持Internet的TCP/IP协议,用于实现Socket编程;提供了与Internet的接口,支持URL连接,WWW的即时访问,并且简化了用户/服务器模型的程序设计。 4)抽象图形用户接口包(javax.swing):实现了不同平台的计算机的图形用户接口部件,包括窗口、菜单、滚动条、对话框等,使得 Java可以移植到不同的平台。 接口解决了Java 不支持多重继承的问题,可以通过实现多个接口达到与多重继承相同的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值