(1)定义闭合图形抽象类ClosedFigure定义属性:1.形状;2.定义构造方法,给形状赋值;3.定义两个抽象方法:计算面积和计算周长;4.定义一个显示方法:显示图像形状,周长,面积;
2024-10-06 06:18:55
题目显示不全,完整题目描述:
(1)定义闭合图形抽象类ClosedFigure定义属性:1.形状;2.定义构造方法,给形状赋值;3.定义两个抽象方法:计算面积和计算周长;4.定义一个显示方法:显示图像形状,周长,面积;(2)定义ClosedFigure的子类椭圆Ellipse定义属性:1.长短轴定义构造方法:初始化长短轴;2.实现从父类继承来的抽象方法;[提示:椭圆求周长公式Math.PI*(this.radius_a+this.radius_b)](3)定义ClosedFigure的子类矩形类Rectangle定义属性:1.长和宽定义构造方法:初始化长和宽;2.实现从父类继承来的抽象方法;
完整代码如下:
package naizi;
import java.util.Scanner;
//闭合图形抽象类
abstract class ClosedFigure{
public String shape;
public ClosedFigure(String shape){
this.shape=shape;
}
abstract double perimeter();
abstract double area();
public void print() //显示形状、属性、周长及面积
{
System.out.println("this is a "+this.shape+",perimeter:"+this.perimeter()+",area:"+this.area());
}
}
//定义椭圆类
class Ellipse extends ClosedFigure{
double Longaxis,Shortaxis;
public Ellipse(String shape) {
super(shape);
}
public Ellipse(double a,double b) {
this("Ellipse");
this.Longaxis=a;
this.Shortaxis=b;
}
double perimeter(){
return Math.PI*(this.Longaxis+this.Shortaxis);
}
double area(){
return Math.PI*this.Longaxis*this.Shortaxis;
}
}
//定义矩形类
class Rectangle extends ClosedFigure{
double Length,Width;
public Rectangle(String shape) {
super(shape);
}
public Rectangle(double a,double b) {
this("Rectangle");
this.Length=a;
this.Width=b;
}
double perimeter(){
return 2*(this.Length+this.Width);
}
double area(){
return this.Length*this.Width;
}
}
public class ClosedFigure_ex
{
public static void main(String args[]){
int a,b;
ClosedFigure d1;
ClosedFigure d2;
try{
Scanner sc = new Scanner(System.in);
String str1 = sc.next();
a=Integer.parseInt(str1);
str1 = sc.next();
b=Integer.parseInt(str1);
d1=new Ellipse(a,b);
d1.print();
String str2 = sc.next();
a=Integer.parseInt(str2);
str2 = sc.next();
b=Integer.parseInt(str2);
d2=new Rectangle(a,b);
d2.print();
} catch(Exception e){
System.out.println("error");
}
}
}
测试如下:
最新文章
- 实用的60个CSS代码片段
- IOS开发--自定义segment控件,方便自定义样式
- [蓝牙] 2、蓝牙BLE协议及架构浅析&;&;基于广播超时待机说广播事件
- SQL SERVER2005 的三种复制类型概述
- MySQL操作数据库和表的常用命令新手教程
- JQUERY学习(贰)
- Selenium2Library系列 keywords 之 _SelectElementKeywords 之 select_all_from_list(self, locator)
- sencha项目升级
- 听说你买了 EOS ,连代码什么样都不知道?
- hdu 5479(括号问题)
- Leetcode_136_Single Number
- Maven 插件之 docker-maven-plugin 的使用
- .Net Core 实践 - 使用log4net记录日志(3)— log4net向ElasticSearch写日志
- Hive的union和join操作
- Presto 架构和原理简介(转)
- sql中的函数
- IT管理就这么管
- jQuery-理解选择结果
- C++练习 | 在递增序列中查找最后一个小于等于指定数的元素
- SQL创建数据库、建表、填入内容
热门文章
- Oracle - SPM固定执行计划(一)
- 8.15 day33 进程池与线程池_协程_IO模型(了解)
- 02 http和https协议
- 新手学习selenium路线图(老司机亲手绘制)
- SpringMVC源码分析4:DispatcherServlet如何找到正确的Controller
- SpringMVC源码剖析5:消息转换器HttpMessageConverter与@ResponseBody注解
- Linux相关安装文档
- C++责任链
- Kafka到底有几个Offset?——Kafka核心之偏移量机制
- Oracle数据库测试和优化最佳实践: OTest介绍 (转)