【发布时间】:2018-05-23 09:41:37
【问题描述】:
构造函数中有 3 个字段(名称、点数、武器),它们存储在 arrayList 中,我想从另一种方法修改名称。我该怎么做? 以及将“this”关键字作为参数传递是什么意思.. 我是java编程新手
我使用下面的代码来更新名称及其更改的名称,但点变为 0 并且武器“null”
public void modify(String name) {
if(savedValues!= null && savedValues.size()>0) {
for (int i = 0; i < savedValues.size(); i++) {
if (savedValues.get(i).getName().equals(name)) {
System.out.println("enter new name");
Scanner scanner=new Scanner(System.in);
//this.name = scanner.next();
savedValues.set(i,this);
}
}
}
}
【问题讨论】:
-
请展示您解决此问题的最新无效尝试。
-
嗨 vinS.. 谢谢回复..
-
this是一个表示上下文的 java 关键字。如果你有一个对象Bar和一个字段foo,但在某些时候你传入了一个也称为foo的参数,this澄清了你在说的是哪个foo。this.foo指的是在Bar中定义的foo(声明为int foo;或类似名称),而不是作为参数提供的foo。但是,如果您通过从Bar调用属于Baz的方法将this从Bar传递给第二个对象Baz,那么您将对Bar的引用传递给Baz。现在你可以从Baz调用Bar的方法了。 -
您的代码不完整,请列出整个类文件。我们至少需要看到构造函数和属性字段。
标签: java object methods constructor