Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么这会一直输出null而不能正常工作?_Java_Constructor_Java.util.scanner - Fatal编程技术网

Java 为什么这会一直输出null而不能正常工作?

Java 为什么这会一直输出null而不能正常工作?,java,constructor,java.util.scanner,Java,Constructor,Java.util.scanner,上下文:我正在尝试创建“Parrot”,您可以为其设置年龄、名称和两个短语。 在你给鹦鹉提供名字后,它会问你想教他什么短语,然后它会问你该短语之后的下一个短语 当鹦鹉出生时,它被命名并知道一句话:“哇!我的名字是”。因为它是一只新鹦鹉,年龄为0,其他2个字符串为空 我的代码如下,有一个Parrot类和一个ParroRunner 鹦鹉 鹦鹉螺 有问题的代码不断输出错误的输出,如下所示,经过数小时的检查和更改代码后,我无法调试它 ParrotRunner.main({ }); Provid

上下文:我正在尝试创建“Parrot”,您可以为其设置年龄、名称和两个短语。

在你给鹦鹉提供名字后,它会问你想教他什么短语,然后它会问你该短语之后的下一个短语

当鹦鹉出生时,它被命名并知道一句话:“哇!我的名字是”。因为它是一只新鹦鹉,年龄为0,其他2个字符串为空


我的代码如下,有一个Parrot类和一个ParroRunner

鹦鹉 鹦鹉螺 有问题的代码不断输出错误的输出,如下所示,经过数小时的检查和更改代码后,我无法调试它

ParrotRunner.main({ });
    Provide a name
        Name
    Enter the age: 
        1

    AWWWWK! I'm 0AWWWWWK! My name is null. What do you wish me to say?
        Hi
    null! What's the other phrase?
        Hi
    null
如果你们都能帮忙,并请解释原因,我将不胜感激

public Parrot(String na, int a , String p2, String p3){
    na = nameA;
    a = age;
    p2 = phrase2;
    p3 = phrase3;
}
反之亦然:

public Parrot(String na, int a, String p2, String p3){
    nameA = na;
    age = a;
    phrase2 = p2;
    phrase3 = p3;
}
您不希望覆盖参数值,而是希望使用它们来设置字段。还要确保纠正设置器

如果您感到困惑,请在字段名之前使用
——它应始终显示在作业的左侧:

this.nameA = na;
反之亦然:

public Parrot(String na, int a, String p2, String p3){
    nameA = na;
    age = a;
    phrase2 = p2;
    phrase3 = p3;
}
您不希望覆盖参数值,而是希望使用它们来设置字段。还要确保纠正设置器

如果您感到困惑,请在字段名之前使用
——它应始终显示在作业的左侧:

this.nameA = na;

只有一个问题:你试过调试你的代码吗?单步完成程序,查看变量如何变化。也许你会发现哪里出了问题,然后你就学到了一些东西。比别人告诉你的要好得多。只有一个问题:你试过调试你的代码吗?单步完成程序,查看变量如何变化。也许你会发现哪里出了问题,然后你就学到了一些东西。比别人告诉你的要好得多。setter方法也一样,除了setPhrases。设置短语是正确的。我总是把
nameA=na
理解为“nameA变成na”。也许这有助于你记住正确的方向。setter方法也是如此,除了setPhrases。设置短语是正确的。我总是把
nameA=na
理解为“nameA变成na”。也许这有助于你记住正确的方向。