首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不使用开关的设置器和Getter的实现

不使用开关的设置器和Getter的实现
EN

Stack Overflow用户
提问于 2013-07-31 10:36:28
回答 4查看 876关注 0票数 3

宠物可以是猫,也可以是狗。每只宠物都需要有一个名字,主人的名字,颜色,医生的名字和品种。所有的宠物都可以哭、吃、睡。没有使用开关方法,我尝试使用setter和getter函数与扫描器。但我不知道如何识别用户是否输入狗,然后用户将输入所有关于狗,然后其他的猫。

这个是可能的吗?

代码语言:javascript
复制
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创建的。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-07-31 10:51:25

所以你有-

user -表示用户的类。有姓名,宠物信息等。用户可以有很多宠物,也可以没有宠物。

宠物-代表某种动物的宠物。有一些共同的属性,如名称,age..some常见的动作,如吃。

狗-扩展宠物有一些属性,如名称,年龄,颜色,品种,一些行动,特别是狗的叫声,抓取球。

猫-扩展宠物有一些属性,如姓名,年龄,颜色,品种,有些行为,如无用的睡眠,一天二十次。

向用户询问-

  1. 用户信息(生成用户)
  2. 询问用户是否有宠物。如果没有宠物,请更新用户配置文件以声明没有宠物。
  3. 如果有宠物,问他们是否有狗。如果有,问问有多少人。阅读每条狗的信息。建立用户的狗配置文件。如果没有狗,更新用户配置文件以表示没有狗。
  4. 如果有宠物,问他们是否有猫。如果有,问问有多少人。读每只猫的信息。建立用户的猫配置文件,就像你在步骤3中为狗做的那样。

更新:

如果用户输入了一只狗或一只猫,你可以看到-

代码语言:javascript
复制
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")); 
票数 2
EN

Stack Overflow用户

发布于 2013-07-31 10:50:42

我想如果你不想用开关,你可以用地图。第一步用简单的字符串确定用户输入,第二步创建您的宠物。

代码语言:javascript
复制
Map<String, PetFactory> factories = new HashMap<>();
factories.put("dog", new DogFactory())
...
String petType = scanner.nextLine();
factories.get(petType).createPet("name", "color");
票数 4
EN

Stack Overflow用户

发布于 2013-07-31 10:42:38

提到的属性不是动物特有的,因此可以有一个单独的宠物类,其属性包括名称、颜色、品种和动物类型:

代码语言:javascript
复制
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");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17968064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档