ホームページ >Java >&#&チュートリアル >Javaでオブジェクトをパラメータとして渡す
Java のオブジェクト パラメータの受け渡しはその機能の基礎であり、メソッドがオブジェクトを直接操作できるようになります。 このメカニズムをマスターすることが、効果的な Java コードを作成するための鍵となります。この詳細な説明ではあらゆる側面がカバーされています。
1. Java のパラメータ受け渡しメカニズム
Java は 値渡し アプローチを採用しています。 変数がメソッドに渡されると、その値のコピーが送信されます。 プリミティブ データ型 (int
、char
など) の場合、これは簡単で、値を直接コピーします。 ただし、参照型 (オブジェクト) の場合、コピーされるのはオブジェクト自体ではなく、参照 (メモリ アドレス) です。この区別は、オブジェクト パラメーターの動作を理解するために重要です。
重要な考慮事項:
2.オブジェクトをメソッドに渡す
オブジェクトをメソッドに渡すと、その参照のコピーが送信されます。 これにより、メソッドに元のオブジェクトのデータとメソッドへのアクセスが許可されます。
具体的な例:
<code class="language-java">class Person { String name; Person(String name) { this.name = name; } void changeName(String newName) { this.name = newName; } } public class Main { public static void main(String[] args) { Person person = new Person("Alice"); System.out.println("Before: " + person.name); // Output: Alice modifyPerson(person); System.out.println("After: " + person.name); // Output: Bob } static void modifyPerson(Person p) { p.changeName("Bob"); } }</code>
説明:
Person
オブジェクト person
が「Alice」という名前で作成されます。modifyPerson
メソッドは、引数として person
を使用して呼び出されます。modifyPerson
内で、p
は元の person
オブジェクトへの参照のコピーを受け取ります。 p
と person
はどちらも同じメモリ位置を指します。changeName
が p
で呼び出され、オブジェクトの name
が「Bob」に変更されます。 p
と person
は同じオブジェクト参照を共有しているため、この変更はメソッド呼び出し後に person.name
にアクセスすると表示されます。3.メソッド内でのオブジェクト参照の再割り当て
オブジェクトの状態は参照を通じて変更可能ですが、メソッド内で参照自体を再割り当てしても、そのメソッドの外にある元の参照には影響しません。
例:
<code class="language-java">class Person { String name; Person(String name) { this.name = name; } } public class Main { public static void main(String[] args) { Person person = new Person("Alice"); System.out.println("Before: " + person.name); // Output: Alice reassignPerson(person); System.out.println("After: " + person.name); // Output: Alice } static void reassignPerson(Person p) { p = new Person("Bob"); } }</code>説明:
Person
オブジェクト person
が「Alice」という名前で作成されます。reassignPerson
メソッドが呼び出されます。reassignPerson
内で、p
は person
の参照のコピーを保持します。p = new Person("Bob");
は新しい Person
オブジェクト (「Bob」) を作成し、その参照を p
に割り当てます。 重要なのは、これはメソッド内のローカル p
参照にのみ影響することです。 person
内の元の main
参照は変更されません。person.name
は、元の参照が内部再割り当ての影響を受けなかったため、「Alice」のままです。4.実際的な意味
Java のオブジェクト パラメータ処理を完全に理解することは、次の場合に不可欠です。
要約:
これらの原則を理解すると、メソッドとオブジェクトの相互作用が予測可能かつ制御可能になり、コードがより堅牢で保守しやすくなります。
以上がJavaでオブジェクトをパラメータとして渡すの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。