宠物可以是猫,也可以是狗。每只宠物都需要有一个名字,主人的名字,颜色,医生的名字和品种。所有的宠物都可以哭、吃、睡。没有使用开关方法,我尝试使用setter和getter函数与扫描器。但我不知道如何识别用户是否输入狗,然后用户将输入所有关于狗,然后其他的猫。
这个是可能的吗?
package petexercise;
import java.util.Scanner;
public class PetCatDog {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
PetCat cat = new PetCat();
PetDog dog = new PetDog();
System.out.print("Enter Dog or Cat Word:");
String pet = cat.nextLine();
}
}其他子类是为setter和setter创建的。
发布于 2013-07-31 10:51:25
所以你有-
user -表示用户的类。有姓名,宠物信息等。用户可以有很多宠物,也可以没有宠物。
宠物-代表某种动物的宠物。有一些共同的属性,如名称,age..some常见的动作,如吃。
狗-扩展宠物有一些属性,如名称,年龄,颜色,品种,一些行动,特别是狗的叫声,抓取球。
猫-扩展宠物有一些属性,如姓名,年龄,颜色,品种,有些行为,如无用的睡眠,一天二十次。
向用户询问-
更新:
如果用户输入了一只狗或一只猫,你可以看到-
Scanner scan = new Scanner(System.in);
String response;
do{
System.out.print("Do you have a pet ? (Y/N): ");
response = scan.nextLine();
} while(!response.equalsIgnoreCase("Y") && !response.equalsIgnoreCase("N"));
if(response.equalsIgnoreCase("N")){
System.exit(0);
}
do{
System.out.print("Cat or a dog ? (C/D): ");
response = scan.nextLine();
} while(!response.equalsIgnoreCase("C") && !response.equalsIgnoreCase("D")); 发布于 2013-07-31 10:50:42
我想如果你不想用开关,你可以用地图。第一步用简单的字符串确定用户输入,第二步创建您的宠物。
Map<String, PetFactory> factories = new HashMap<>();
factories.put("dog", new DogFactory())
...
String petType = scanner.nextLine();
factories.get(petType).createPet("name", "color");发布于 2013-07-31 10:42:38
提到的属性不是动物特有的,因此可以有一个单独的宠物类,其属性包括名称、颜色、品种和动物类型:
enum Animal {
CAT(4),
DOG(4);
public final int legs;
private Animal(int legs) {
this.legs = legs;
}
}
public static Animal what(String whatAnimal) {
return Animal.valueOf(whatAnimal.toUpperCase());
};
Animal animal = what("dog");https://stackoverflow.com/questions/17968064
复制相似问题