Javaでの値渡しと参照渡し



このブログは、Javaでの値渡しと参照渡しを理解するのに役立ちます。また、JavaがPass byValueと呼ばれる理由を例とともに説明します。

Javaは、誰でも利用できる最も基本的なプログラミング言語の1つです。非常にシンプルであると同時に、Javaを使用して開発できる可能性は無限大です。これが、Javaを今日の業界で最も広く使用されている言語にしている理由です。このブログは、Javaでの値渡しと参照渡しについて次の順序で理解するのに役立ちます。

Javaでの値渡しと参照渡し

値渡しと参照渡しは、関数内の変数に値を渡すことができる2つの方法です。





  • 値渡し: これは、関数パラメーター値が別の変数にコピーされ、代わりにコピーされたこのオブジェクトが渡されるプロセスです。これは、値による呼び出しとして知られています。

  • 参照渡し: これは、参照の実際のコピーが関数に渡されるプロセスです。これは参照によって呼び出されます。



Javaについて言えば、Javaは値渡しであり、参照渡しではないと言えます。

プログラミングによって、引用されたステートメントを説明します。

プログラム付きイラスト

クラスがあるとしましょう 以下のように。



public class Car {private String color public Car(){} public Car(String a){this.color = a} public String getColor(){return color public void setColor(String color){this.color = color}

次に、2つのオブジェクトを交換するプログラムがあります。

c ++マージソートアルゴリズム
public class Disp {public static void main(String [] args){Car red = new Car( 'Red')Balloon yellow = new Balloon( 'Yellow')swap(red、yellow)System.out.println( 'red color = '+ red.getColor())System.out.println(' yellow color = '+ yellow.getColor())desc(yellow)System.out.println(' yellow color = '+ yellow.getColor())} private static void desc(Car car){// car = 100balloon.setColor( 'Red')// car = 100 car = new car( 'Green')// car = 200 car.setColor( 'Yellow')/ / car = 200} //スワップメソッドpublicstatic void swap(Object o1、Object o2){Object temp = o1 o1 = o2 o2 = temp}}

出力

赤い色=赤

黄色=黄色

黄色=赤

説明:

したがって、JAVAは値渡しであると前に述べたように、出力の最初の2行はswap()メソッドが機能しなかったことがわかります。コードについて詳しく説明しましょう。

Javaでの値渡しと参照渡し

まず、を使用してクラスのインスタンスを作成しました 新着 オペレーター。作成され、値がメモリ位置に保存されます。したがって、このインスタンスは、「赤」と「黄色」のオブジェクトのメモリ位置を指しています。ここで、新しいオブジェクトo1とo2を使用して値を呼び出すと、「赤」と「黄色」の2つのオブジェクトのメモリ位置を指します。したがって、swapメソッドが最初に呼び出されると、「赤」のメモリ位置を指します。次の行で、車の参照が次のアドレスに変更され、「黄色」のメモリ位置がポイントされます。したがって、最初のステップではなく、2番目のステップで交換されます。これが、JAVAが参照ではなく値渡しと呼ばれる理由です。

Javaでの値渡しと参照渡しについて理解したので、 25万人以上の満足した学習者のネットワークを持つ信頼できるオンライン学習会社であるEdurekaが世界中に広がっています。 EdurekaのJavaJ2EEおよびSOAトレーニングおよび認定コースは、Java開発者になりたい学生および専門家向けに設計されています。このコースは、Javaプログラミングをすぐに開始できるように設計されており、HibernateやSpringなどのさまざまなJavaフレームワークに加えて、コアと高度なJavaの両方の概念についてトレーニングします。

質問がありますか?この「Javaでの値渡しと参照渡し」の記事のコメントセクションにその旨を記載してください。できるだけ早くご連絡いたします。