Java实训练习

设计一个IShape接口和它的三个实现类,要求如下:

Ishape接囗中有两个方法,area方法用于返回面积,perimeter方法返回周长。

正方形类Square、长方形类Rectangle和圆类Circle实现了接囗中的抽象方法,计算了正方形、长方形及圆形的面积、周长。

在测试类中创建计算边长为2的正方形对象,创建长为5、宽为2.5的长方形对象,创建半径为3的圆形对象,分别计算它们的面积、周长。

根据题意,我们需要先设计一个接口,代码如下:

这段代码定义了一个名为IShape的Java接口。接口是一种抽象类型,它只包含方法声明而不包含方法实现。在这个例子中,IShape接口声明了两个方法:area()和perimeter()。

area()方法用于计算形状的面积,而perimeter()方法用于计算形状的周长。这两个方法都没有参数,并且返回一个double类型的值。

接下来,根据题意,我们需要设计一个正方形类Square、长方形类Rectangle和圆类Circle实现了接囗中的抽象方法,计算了正方形、长方形及圆形的面积、周长。

首先我们先来设计一个正方形类Square

正方形类Square:

代码如图所示:

代码解释:

这段代码定义了一个名为Square的类,该类实现了IShape接口。Square类具有以下特点和功能

public class Square implements IShape{:定义一个名为Square的公共类,并实现IShape接口。

私有成员变量Edgelength:用于存储正方形的边长。

构造函数Square(double Edgelength):接收一个参数作为正方形的边长,并调用setEdgelength方法进行设置。如果边长非法(小于等于0),则抛出异常。

setEdgelength(double Edgelength)方法:用于设置正方形的边长。如果边长非法(小于等于0),则抛出异常,否则将成员变量Edgelength设置为给定值。

area()方法:实现了IShape接口中的area()方法,计算并返回正方形的面积。

perimeter()方法:实现了IShape接口中的perimeter()方法,计算并返回正方形的周长。

通过实现IShape接口,Square类具备了计算面积和周长的能力,并且可以通过接口引用来操作Square对象,实现多态性。

这样,正方形类就设计完成了。

长方形类Rectangle:

代码如下:

代码解释:

这段代码定义了一个名为Rectangle的类,该类实现了IShape接口。Rectangle类具有以下特点和功能:

私有成员变量longs和wide:分别用于存储长方形的长和宽。

构造函数Rectangle(double longs, double wide):接收两个参数作为长方形的长和宽,并调用setLongs和setWide方法进行设置。如果长或宽非法(小于等于0),则抛出异常。

setLongs(double longs)方法:用于设置长方形的长。如果长非法(小于等于0),则抛出异常,否则将成员变量longs设置为给定值。

setWide(double wide)方法:用于设置长方形的宽。如果宽非法(小于等于0),则抛出异常,否则将成员变量wide设置为给定值。

area()方法:实现了IShape接口中的area()方法,计算并返回长方形的面积。

perimeter()方法:实现了IShape接口中的perimeter()方法,计算并返回长方形的周长。

通过实现IShape接口,Rectangle类具备了计算面积和周长的能力,并且可以通过接口引用来操作Rectangle对象,实现多态性。

这样,一个长方形类就设计完成了。

圆形类Circle:

代码解释:

这段代码,定义了一个名为Circles的类,该类实现了IShape接口。Circles类具有以下特点和功能:

私有成员变量r:用于存储圆的半径。

构造函数Circles(double r):接收一个参数作为圆的半径,并调用setR方法进行设置。如果半径非法(小于等于0),则抛出异常。

setR(double r)方法:用于设置圆的半径。如果半径非法(小于等于0),则抛出异常,否则将成员变量r设置为给定值

area()方法:实现了IShape接口中的area()方法,计算并返回圆的面积。

perimeter()方法:实现了IShape接口中的perimeter()方法,计算并返回圆的周长。

通过实现IShape接口,Circles类具备了计算面积和周长的能力,并且可以通过接口引用来操作Circles对象,实现多态性。

这样,一个圆形类就设计完成了,根据题目要求,我们还需要设计一个测试类,代码如图所示:

代码解释:

它是在一个主类(很可能是主方法main)中创建了三个不同的几何形状对象并计算它们的面积和周长。这三个对象分别是正方形(Square)、长方形(Rectangle)和圆形(Circles),这些类都实现了一个共同的接口IShape,这个接口定义了计算面积(area)和周长(perimeter)的方法。

代码执行以下步骤:

  1. 创建一个正方形对象s1,边长为2。
  2. 创建一个长方形对象rl,长宽分别为5和2.5。
  3. 创建一个圆形对象c1,半径为3。
  4. 使用System.out.printf打印出每个形状的面积和周长,格式化输出以确保只显示一位小数点(对于正方形和长方形)或两位小数点(对于圆形)。
  5. 如果在创建形状对象或调用其方法时抛出异常,则捕获该异常并打印堆栈跟踪。

这样,我们的项目到此就结束了,最后的输出结果为:

注:剩下的运行结果没截完。

注:为了运行此代码,需要确保已经正确定义了SquareRectangleCircles类以及它们各自的构造函数和方法,并且这些类都在同一个包内或者被正确地导入。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值