2017-12-09 8 views
0

コンストラクタ(名前、ポイント、武器)に3つのフィールドがあり、それらがarrayListに格納されていて、別のメソッドから名前を変更したいのですがどうすればいいですか? とどのようなパラメータとして「この」キーワードを渡すの意味は..です 私は、Javaプログラミングに新しいですコンストラクタのフィールドをJavaで設定する方法

私は名前とその変更の名前を更新するためのコードの下に使用されるが、ポイントが0になり、武器「ヌル」

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); 
      } 
     } 
    } 
} 
+1

この問題を解決するには、最新ではない試みを示してください。 – vinS

+0

こんにちはvinS ..返信ありがとう.. – user

+0

'this'はコンテキストを表すjavaキーワードです。フィールド 'foo'を持つオブジェクト' Bar'を持っていて、ある時点で 'foo'という引数を渡すと、' this'はあなたが話している 'foo'を明確にします。 'this.foo'は引数として与えられた' foo'とは対照的に 'Bar'で定義された' foo'( 'int foo;'などと宣言されています)を指します。しかし、 'Bar'から' Baz'に属するメソッドを呼び出すことで、 'Bar'から' Baz'に 'this'を渡す場合は、' Bar'への参照を 'Baz'に渡しています。今度は 'Baz'から' Bar'のメソッドを呼び出すことができます。 – MarsAtomic

答えて

0

この

String newName = scanner.next(); 
savedValues.get(i).setName(newName); 

savedValues.get(i)のようなものを試してみてはあなたにオブジェクトを与えると、あなたはその特定のオブジェクトのnameプロパティを更新しようとしています。これは、コードが実行されているオブジェクトインスタンスへの参照です。ここでこれを使うのは意味がありません。

+1

ありがとうございました。 ..解決済み – user

+0

お役立ち情報あなたはそれを投票することもできます答えを受け入れることに加えて:) – muasif80

関連する問題