为了账号安全,请及时绑定邮箱和手机立即绑定

不知还能不能再精简了???

package com;
public abstract class Shape {
static double Pi=3.14;
//抽象类方法定义
public abstract double changzhouchang(double a,double b);
public abstract double circlezhouchang(double c);
public abstract double changmianji(double a,double b);
public abstract double circlemianji(double c);
}
package com;
public class Caculate extends Shape {
//方法实现
public double changzhouchang(double a,double b) {
return (a+b)*2;
}
public double circlezhouchang(double c) {
return 2*Pi*c;
}
public double changmianji(double a,double b) {
return a*b;
}
public double circlemianji(double c) {
return Pi*c*c;
}
}
package com;
import java.util.*;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
double a,b,c;
System.out.println("程序开始:");
Scanner scanner=new Scanner(System.in);
System.out.println("请输入长方形的长,款,圆形的半径:");
a=scanner.nextDouble();
b=scanner.nextDouble();
c=scanner.nextDouble();
Caculate caculate =new Caculate();
System.out.println("长方形周长为:"+caculate.changzhouchang(a, b)+"\n"+"长方形面积为:"+caculate.changmianji(a, b)+"\n"+"圆形周长为:"+caculate.circlezhouchang(c)+"\n"+"圆形面积为:"+caculate.circlemianji(c));
scanner.close();
}
}


正在回答

2 回答

圆形和长方形都是几何图形,所以定义几何图形为抽象父类

并且拥有两个抽象方法 计算周长和面积


分别新增两个子类,圆形、长方形,继承于几何图形,实现抽象方法计算周长和面积


再新增test类,要用到流程控制,

请用户选择要计算

1、圆形/长方形

2、周长/面积

再要求用户输入(如果是圆形输入半径,如果是长方形输入长和宽)

判断用户输入是否合理

再给出相应提示或结果。


写代码不是要用最少的类或者最少的代码量去解决问题,而是要做到最优化处理,

这样即便之后我要再引入新的几何图形就能在最短的时间处理完成,

要注意代码的可扩展性,希望能对你有所帮助!


3 回复 有任何疑惑可以回复我~
#1

抽象驴 提问者

说的有道理,刚开始学,总以为代码越少越好,忽略了其他问题,感谢。
2019-01-22 回复 有任何疑惑可以回复我~

不用这么麻烦直接抽象类里定义两个方法一个周长一个面积然后定义两个子类自动创建的方法里面你可以自己随便添加变量然后计算值,抽象类只是限制了子类的方法必须有那些方法但是他没有限定方法里你需要做些什么事情。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       530655    人
  • 解答问题       6091    个

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

进入课程

不知还能不能再精简了???

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信