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

关于4-3抽象类课后练习的问题

现有Shape图形类,用Rectangle矩形和Circle圆形子类,求图形的周长和面积。

能不能实现在Initail类里,随意输入任意数字,得到不同的矩形面积和周长,得到不同的圆形面积和周长?

我做的只能实现固定半径和长还有宽,求得矩形面积和周长,圆形的面积和周长

正在回答

4 回答

//父类代码。
public abstract class shape {
    public abstract void length();
    public abstract void square();
}
//长方形子类代码。
public class rectangle extends shape {
    Scanner scan1=new  Scanner(System.in);
    int l=scan1.nextInt();
    Scanner scan2=new  Scanner(System.in);
    int w=scan2.nextInt();
        public void length() {
        int  length=2*(l+w);
        System.out.println("长方形的周长为:"+length);
    }
    public void square() {
        int  square=w*l;
        System.out.println("长方形的面积为:"+square);
    }
}
//圆形子类代码。
public class circle extends shape {
    Scanner scan1=new  Scanner(System.in);
    double r=scan1.nextDouble();
    public void length() {
        double length=2*3.14*r;
        System.out.println("圆形的周长为:"+length);
    }
    public void square() {
        double square=3.14*r*r;
        System.out.println("圆形的面积为:"+square);
    }
}
//测试类代码。
public class test {
    public static void main(String[] args) {
        System.out.println("请输入您要查询的图形类型:1代表长方形,2代表圆形。");
        Scanner input =new Scanner(System.in);
        int num=input.nextInt();
        switch (num) {
        case 1:
            System.out.println("请依次输入长方形的长度和宽度:");
            shape shp1=new rectangle();
            shp1.length();
            shp1.square();         
            break;
        case 2:
            System.out.println("请输入圆形的半径:");
            shape shp2=new circle();
            shp2.length();
            shp2.square();         
            break;
        default:
            System.out.println("您输入的数值有误,请重新输入。");
        }
    }
}

这是我刚发布的问题里面的代码,能运行,只是有点小瑕疵:一次只能计算一种图形,下一次需要重新运行才可以。

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

慕数据3565510 提问者

非常感谢!
2017-05-20 回复 有任何疑惑可以回复我~
#2

qq_Blackhumor_0

可以多次计算吗?解决了没
2017-06-01 回复 有任何疑惑可以回复我~

  Scanner scan1=new  Scanner(System.in);

    int l=scan1.nextInt();

    Scanner scan2=new  Scanner(System.in);

这些表达的什么内容啊 ?


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

qq_Blackhumor_0

就是一个输入,更C语言中的SCANF一样的。
2017-06-01 回复 有任何疑惑可以回复我~

可以啊,通过父类引用子类对象,再通过instanceof判断它属于哪个类,然后强制转换,调用相应的方法得到周长和面积

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

需要增加输入语句,可以按照这样的逻辑:1.选择矩形还是圆(可以用输入1代表矩形,输入2代表圆);2.输入长宽或者半径3.输出周长和面积

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

举报

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

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

进入课程

关于4-3抽象类课后练习的问题

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