Java:在作业分配中使用字符串作为实例变量。
我在开始这项Java任务时遇到了一些困难,希望能从你们那里得到一些指导。我的问题非常简单明了。。。如何接受tester方法的输入并开始使用“Dave”作为新名称?如何使Dave成为实例变量,以及如何在setName()和greetCrewMember()方法中开始使用该变量?完成后,我将如何分配Aruna?让我大吃一惊的是实例变量并在方法中调用它。谢谢你的帮助Java:在作业分配中使用字符串作为实例变量。,java,variables,instance,Java,Variables,Instance,我在开始这项Java任务时遇到了一些困难,希望能从你们那里得到一些指导。我的问题非常简单明了。。。如何接受tester方法的输入并开始使用“Dave”作为新名称?如何使Dave成为实例变量,以及如何在setName()和greetCrewMember()方法中开始使用该变量?完成后,我将如何分配Aruna?让我大吃一惊的是实例变量并在方法中调用它。谢谢你的帮助 public class Hal9000 { private String name; public static vo
public class Hal9000
{
private String name;
public static void main(String[] args)
{
Hal9000 hal = new Hal9000("Dave");
System.out.println(hal.greetCrewMember());
System.out.println("Expected: Welcome, Dave");
System.out.println(hal.doCommand("engage drive"));
System.out.println("Expected: I am sorry, Dave. I can't engage drive");
hal.setName("Aruna");
System.out.println(hal.doCommand("power down"));
System.out.println("Expected: I am sorry, Aruna. I can't power down");
}
public String getName()
{
}
public void setName(String newName)
{
String name = newName;
return name;
}
public String greetCrewMember()
{
String message = "Welcome," + name ;
return message;
}
public String doCommand(String whatToDo)
{
}
}
你唯一要做的就是定义一个参数化的构造函数-
Hal9000(String name)
{
this.name=name;
}
这将导致您的声明-
Hal9000 hal = new Hal9000("Dave");
要正确执行,请将名称设置为Dave。在此之后,您可以通过setname方法将名称设置为任何其他名称
您还需要在getname方法中定义一些内容。您应该在构造函数中使用字段
name
,并使用this
在setter和构造函数中实例化它
Hal9000(String name) {
this.name = name;
}
进一步实例化为
Hal9000 instanceForDave = new Hal9000("Dave"); // would set the 'name' for this instance as 'Dave'
Hal9000 instanceForAruna = new Hal9000("Aruna");
setter实现在理想情况下也应该只使用这个
名称,类似于您案例中的构造函数:
public void setName(String newName) {
this.name = newName;
}
然后,当您需要获取类的name
属性时,getter也会很有帮助
public String getName() {
return this.name;
}
测试方法的输入你是什么意思?我指的是测试字符串“Dave”和“Aruna”,以查看我的代码是否正常工作。好的,这更有意义,而且有效!非常感谢你!你介意快速解释一下“this.name=name”这个词吗?我想我们还没有学过“this”,所以这对我来说是个新概念。它到底在做什么?这个指针用于引用我们正在讨论的当前实例。在这里,你可以看到方法的参数名为name,我想将其设置为实例的name变量。为了区别这一点,我使用this.name来表示它需要使用传递给参数的名称来设置实例变量名。谢谢!它起作用了,现在很清楚了。我仍然对代码中的“this”部分有些迷茫。它到底在做什么?@HenFish它指的是当前的对象。一定要多读一些-
public class Hal9000
{
private String name;
public Hal9000(String[] stringArray) {
name = stringArray[0];
}
public static void main(String[] args)
{
String[] stringArray = { "Dave"};
Hal9000 hal = new Hal9000(stringArray);
System.out.println(hal.greetCrewMember());
System.out.println("Expected: Welcome, Dave");
System.out.println(hal.doCommand("engage drive"));
System.out.println("Expected: I am sorry, Dave. I can't engage drive");
hal.setName("Aruna");
System.out.println(hal.doCommand("power down"));
System.out.println("Expected: I am sorry, Aruna. I can't power down");
}
public String getName()
{
return this.name;
}
public void setName(String newName)
{
this.name = name;
}
public String greetCrewMember()
{
String message = "Welcome," + getName() ;
return message;
}
public String doCommand(String whatToDo) {
return whatToDo;
}
}