用Java设计一个自行车类,该类中包含颜色和尺寸2个成员变量,编写构造方法,适应0-2个参数。能够进行数据验证,尺寸在10-30之间颜色只能为红绿蓝3色。编写输出方法
时间: 2023-05-24 08:01:04 浏览: 235
好的,这是一个很好的编程问题。以下是自行车类的代码示例:
```
public class Bicycle {
private String color;
private int size;
public Bicycle() {
// 默认尺寸为20,颜色为红色
this.size = 20;
this.color = "红色";
}
public Bicycle(int size) throws Exception {
// 传入尺寸参数进行验证
setSize(size);
// 默认颜色为红色
this.color = "红色";
}
public Bicycle(String color) throws Exception {
// 传入颜色参数进行验证
setColor(color);
// 默认尺寸为20
this.size = 20;
}
public Bicycle(int size, String color) throws Exception {
// 对尺寸和颜色进行验证
setSize(size);
setColor(color);
}
public void setColor(String color) throws Exception {
// 验证颜色是否为红、绿、蓝之一
if (!"红色".equals(color) && !"绿色".equals(color) && !"蓝色".equals(color)) {
throw new Exception("颜色只能为红、绿、蓝之一");
}
this.color = color;
}
public void setSize(int size) throws Exception {
// 验证尺寸是否在10-30之间
if (size < 10 || size > 30) {
throw new Exception("尺寸必须在10-30之间");
}
this.size = size;
}
public void display() {
System.out.println("这辆自行车的颜色是:" + color + ",尺寸是:" + size);
}
}
```
在这个类中,我们定义了两个成员变量:颜色和尺寸。我们编写了四个构造方法来适应不同数量的参数,并使用验证方法确保颜色和尺寸的正确性。我们可以使用display()方法来输出自行车的颜色和尺寸。
下面是一个简单的测试程序,使用上述Bicycle类创建对象并设置颜色和尺寸,然后调用display()方法显示信息:
```
public class TestBicycle {
public static void main(String[] args) {
try {
Bicycle bike1 = new Bicycle();
Bicycle bike2 = new Bicycle(25);
Bicycle bike3 = new Bicycle("蓝色");
Bicycle bike4 = new Bicycle(18, "绿色");
bike1.display();
bike2.display();
bike3.display();
bike4.display();
// 尝试设置颜色和尺寸的不合法值并捕获异常
bike1.setSize(35); // 抛出异常:“尺寸必须在10-30之间”
bike2.setColor("紫色"); // 抛出异常:“颜色只能为红、绿、蓝之一”
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
这个测试程序将创建四个不同的自行车对象,并使用它们的display()方法输出它们的颜色和尺寸。我们还尝试在测试程序末尾设置不合法的颜色和尺寸值,并使用try-catch块捕获异常(这些设置会触发异常)。