请编写一个Java程序,要求输入一个整数n,然后输出n个随机字母,如果n不在1到10之间,则抛出一个自定义的异常InvalidInputException,并在主函数中进行捕获和处理。 五、按要求编写程序: (1)编写抽象类Mammal(哺乳动物),拥有抽象方法void move()和void eat (); (2)维承Mammal类编写 Cheetah(猎豹)、Dolphin(海豚)、Bat(蝙蝠)三个类,分别为它们编写move()和eat()方法覆盖父类中的同名方法,方法被调用后在命令行中输出合适的内容。(如Bat的move()方法输出“I’m flying.”,eat()方法输出“I eat insect.”) (3)创建包含main方法的Test类,在main方法中创建专门用于存储Mammal对象的Arravlist<Mammal> list,并创建Cheetah、Dolphin、Bat 对象各一个,存入list,最后用遍历list,并用多态方式调用对象中的move()和eat()方法。
时间: 2024-03-24 19:40:54 浏览: 57
好的,以下是Java程序代码:
```
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
class InvalidInputException extends Exception {
public InvalidInputException(String message) {
super(message);
}
}
abstract class Mammal {
public abstract void move();
public abstract void eat();
}
class Cheetah extends Mammal {
@Override
public void move() {
System.out.println("I'm running.");
}
@Override
public void eat() {
System.out.println("I eat meat.");
}
}
class Dolphin extends Mammal {
@Override
public void move() {
System.out.println("I'm swimming.");
}
@Override
public void eat() {
System.out.println("I eat fish.");
}
}
class Bat extends Mammal {
@Override
public void move() {
System.out.println("I'm flying.");
}
@Override
public void eat() {
System.out.println("I eat insect.");
}
}
public class Test {
public static void main(String[] args) {
ArrayList<Mammal> list = new ArrayList<>();
list.add(new Cheetah());
list.add(new Dolphin());
list.add(new Bat());
for (Mammal mammal : list) {
mammal.move();
mammal.eat();
}
try {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个整数n:");
int n = scanner.nextInt();
if (n < 1 || n > 10) {
throw new InvalidInputException("输入的整数必须在1到10之间!");
}
Random random = new Random();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < n; i++) {
sb.append((char) (random.nextInt(26) + 'a'));
}
System.out.println("生成的随机字母为:" + sb.toString());
} catch (InvalidInputException e) {
System.out.println("发生异常:" + e.getMessage());
}
}
}
```
程序首先创建了 Mammal 抽象类和 Cheetah、Dolphin、Bat 三个继承自 Mammal 的类,分别实现了 move() 和 eat() 方法。然后创建了一个 ArrayList<Mammal> 对象,将三个对象分别添加到 list 中,并使用多态方式调用它们的 move() 和 eat() 方法。
程序接着使用 Scanner 类读取用户输入的整数 n,如果 n 不在 1 到 10 之间,则抛出一个自定义的异常 InvalidInputException。如果没有抛出异常,则使用 Random 类生成 n 个随机字母,并输出到命令行中。如果抛出了异常,则在 catch 块中打印异常信息。
阅读全文