有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java根据类的属性选择一个类

我想用java编写一个方法,根据输入选择某些单词。 例如,如果选择是狗、猫、蜥蜴、鹰 如果有人输入wings,它会检查选项是否具有该属性

我不知道这有多复杂,但到目前为止,我们已经学习了循环、返回、if、else和扫描器


共 (3) 个答案

  1. # 1 楼答案

    您可能可以为每个对象维护一个属性列表,然后检查用户类型的属性是否是手头所有对象类型列表的一部分

    我建议您查看ArrayListJavaDoc,您需要使用它来维护属性列表。如果您对使用ArrayList对象来保存属性感到不自在,那么您可能希望改用String数组,这样也可以很好地工作。您还需要定义一个类层次结构,并定义一个在所有子类中都可用的方法(这里是关于继承的tutorial

    编辑

    在阅读评论之前,我发布了第一个答案

    如果您的唯一任务是提供在用户指定温度下冻结的组件列表,则不需要属性列表。您可以定义一个超级类(比如Element),它将定义一个抽象方法public int getFreezingTemperature ()。然后,在所有子类中,必须实现此方法。例如,如果创建一个类Water

    public class Water extends Element {
        @Override
        public int getFreezingTemperature () {
            return 0;
        }
    }
    

    并对必须创建的每个元素重复相同的操作。完成后,无论何时用户输入温度,都可以通过方法getFreezingTemperature ()查询元素,无论何时返回的温度高于用户指定的温度,都可以将其添加到在指定温度下冻结的元素列表中

  2. # 2 楼答案

    编辑:在阅读了你的评论之后,看起来你想做这样的事情

    //create your scanner, using whatever resource you are told to use
    int temp=scanner.readInt()
    
    //read in the given temperatures
    if(substance1freezingpoint > temp){
        System.out.println("substances 1 will freeze at " + temp);
    }
    if(substance2freezingpoint > temp){
        System.out.println("substance 2 will freeze at " + temp);
    }
    ....
    

    关于该实现,有几点需要注意

    1. 它假设不止一种物质可以在高温下冻结。如果不是这样的话,你会想使用else If。作为一个测试你学习能力的问题:为什么
    2. 它不存储在特定温度下会冻结的物质,它只是将它们打印到屏幕上。您将如何修改此项以存储符合标准的物质
    3. 它不涉及沸点,但它是一个非常简单的修改,使它做到这一点

    那么,这段代码至少让你有了正确的方向,还是它不能满足问题的要求

  3. # 3 楼答案

    我试图回答你在评论中提到的物质温度问题。您可以制作这样的数组:

    String[] substances = new String[number of substances given];
    

    然后将这些物质按指定的顺序放入数组中。然后,您可以检查用户的输入,并确定与其输入对应的物质名称在哪个索引处。例如:

    //code to initialize array of substances goes here, call it "substArray"
    //code to make scanner goes here, call it "scan"
    int temp = scan.nextInt();
    if(temp == -100)
    {
    System.out.println(substArray[index of substance corresponding with -100]);
    }
    else if...
    ...
    

    这似乎是一个非常混乱和不太优雅的程序,不使用单独的类来编写,但希望这在您当前的知识和理解范围内。 我希望这有帮助, 泰勒