有人可以向我解释以下代码吗?很难理解流程是如何工作的。当在main()中调用动物构造函数时,它打印出“请输入名称”,但是用户如何能够在这里输入任何内容?它是如何分配给userInput的?最后,为什么我们在这里使用this.setName(userInput.nextLine())?
:in ?alt-db :where [?alt-db ?tag :tag/name ?tagname] ...
答案 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)
代码有各种错误,无法编译。用户将无法输入任何内容。
编辑:最初,代码没有编译。请参阅以上答案。