需要帮助理解Java中的用户输入

时间:2016-04-29 23:05:25

标签: java

有人可以向我解释以下代码吗?很难理解流程是如何工作的。当在main()中调用动物构造函数时,它打印出“请输入名称”,但是用户如何能够在这里输入任何内容?它是如何分配给userInput的?最后,为什么我们在这里使用this.setName(userInput.nextLine())?

:in ?alt-db :where [?alt-db ?tag :tag/name ?tagname] ...

3 个答案:

答案 0 :(得分:1)

运行程序时,方法为:

userInput.hasNextLine()

将阻止,直到用户输入内容并按Enter(cf javadoc)。

一旦完成,您将得到以下结果:

userInput.nextLine()

然后使用此值设置狗的名称。

最后,它返回具有用户输入名称的新动物实例。

答案 1 :(得分:0)

它汇编了。 您在构造函数之前定义了方法setName 这无论如何都不会影响执行。 在main方法中,创建了一个类动物的实例 并在被创造。这位顾问被召唤了。 并且构造函数中的代码是要求名称的, 然后if语句检查用户是否通过 标准输入。并将值传递给setName方法 然后将值赋给name。

import java.util.Scanner;
import java.util.*;

public class animal{

private String name;
static Scanner userInput = new Scanner(System.in);


public void setName(String name){
   this.name = name;
}


public animal(){
System.out.println("please input the name");
if(userInput.hasNextLine()){

  this.setName(userInput.nextLine());
}

System.out.println("The name of the animal is: " + name);

}


public static void main(String[] args){

   animal Dog1 = new animal();
}
}

答案 2 :(得分:-1)

代码有各种错误,无法编译。用户将无法输入任何内容。

编辑:最初,代码没有编译。请参阅以上答案。