java scanner构造函数_java – 根据用户输入确定构造函数调用

我需要向用户询问他想绘制的图中有多少边,然后调用正确的构造函数来实例化该对象.

下面是我尝试使用IF语句来解决答案(或者我可以使用一个开关),但是我不知道这是否是最好的方法,可能是Java继承和多态.

所有的类都扩展了类图.

类别图:

--------------- Figure ---------------

^ ^ ^ ^

| | | |

| | | |

Circle Triangle Rectangle Exagone

主要类别:

import java.util.Scanner;

class Draw {

static void main(String[] args){

Scanner userInput = new Scanner(System.in);

int num_sides;

//user input

System.out.println("How many sides has the figure you want to draw?");

num_sides = userInput.nextInt();

//---> deciding what constructor to call with if statements

if(num_sides == 0){

Figure f1 = new Circle();

}

else if(num_sides == 3){

Figure f1 = new Triangle();

}

//...

else{

System.out.println("Error. Invalid sides number");

}

}

}

类别编号:

class Figure{

private int sides;

public Figure(int num_sides){

sides = num_sides;

}

}

class Circle extends Figure{

public Circle(){

super(0);

}

}

//... all the other classes has the same structure of Circle

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值