Java头歌 10-2 接口与多态

本文介绍了如何在Java中定义一个Ellipse类,使其实现Area和Perimeter接口,计算并输出椭圆的面积和周长,给定长半轴和短半轴的值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第2关: 在椭圆类中实现2个接口

任务描述

本关任务: 参照以下案例,定义一个Ellipse类,实现接口Area和Perimeter.并在主函数中定义 Ellipse类的对象,输出该对象的面积和周长。 说明:设椭圆的长半轴和短半轴的长分别用 a 和b表示,则 周长:L=2πb+4(a-b) 面积:A=πab

相关知识

为了完成本关任务,你需要掌握: 1.接口的定义,2.接口的实现,3.类和对象的定义和使用。

基于接口的矩形类

//声明(定义)接口 Area interface Area { public abstract double area(); //抽象方法area():计算面积 } //声明(定义)接口 Perimeter interface Perimeter { public abstract double perimeter(); //抽象方法perimeter():计算周长 } //定义矩形类,实现接口Area、Perimeter class Rectangle implements Area,Perimeter{
private double width; private double length; //构造函数 public Rectangle(double wid, double len) { width=wid; length=len; } //实现Area接口中的抽象方法area() public double area() { return widthlength; } //实现Perimeter接口中的抽象方法perimeter() @Override public double perimeter() { return 2*(width+length);
} //显示矩形对象的信息 public void display() { System.out.printf("矩形的宽度:%.2f,长度:%.2f,",this.width,this.length); System.out.printf("面积:%.2f,周长:%.2f\n",area(),perimeter()); } } 运行结果: 矩形的宽度:3.00,长度:6.00,面积:18.00,周长:18.00

编程要求

根据提示,在右侧编辑器补充代码.

测试说明

平台会对你编写的代码进行测试:

测试输入: 6 4; 预期输出: 椭圆的长半轴:6.00,短半轴:4.00,面积:75.36,周长:33.12

提示: 输出结果中的标点符号均为英文半角

/* 请在下面标注【】的位置补充代码。
*/
 
import java.util.Scanner;
//定义接口 Area,包含抽象方法area():计算面积
interface Area {
	public abstract double area();
}
//定义接口 Perimeter,包含抽象方法perimeter():计算周长
interface Perimeter {
	public abstract double perimeter();
}
 
 
//定义椭圆类,实现接口Area、Perimeter
class Ellipse implements Area,Perimeter {   
	private  double longAxis;   //长半轴
	private  double shortAxis;  //短半轴
	//构造方法
	public Ellipse(double longAxis, double shortAxis)
	{
		 this.longAxis= longAxis;
		this.shortAxis= shortAxis;
	}
	//重写(或实现)Area接口中的抽象方法area()
	@Override
	public double area(){
        return(3.14*longAxis*shortAxis);
    }
 
	//实现Perimeter接口中的抽象方法perimeter()
	@Override
	public double perimeter(){
        return 2*3.14*shortAxis+4*(longAxis-shortAxis);
    }
    
	//显示椭圆对象的信息
	public void display()
	{
		System.out.printf("椭圆的长半轴:%.2f,短半轴:%.2f",this.longAxis,this.shortAxis);
		System.out.printf(",面积:%.2f,周长:%.2f\n",area(),perimeter());
	}
}
 
//测试类
public class EllipseTest {
 
	public static void main(String[] args) {
		
	Scanner sc = new Scanner(System.in);
		double a,b;
		a = sc.nextDouble();  //长半轴
		b = sc.nextDouble();  //短半轴
		Ellipse ellipse = new Ellipse(a,b);
		ellipse.display();
	}
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值