値渡し --- 基本的なデータ型パラメータを渡します
次のようにコードをコピーします。
パブリック クラス PassValue{
static voidexchange(int a, int b){//静的メソッド、a と b の値を交換します
内部温度;
温度 = a;
a = b;
b = 温度;
}
public static void main(String[] args){
int i = 10;
int j = 100;
System.out.println("呼び出し前: " + "i=" + i + "/t" + "j = " + j);//呼び出し前
exchange(i, j); //値の転送、メインメソッドは静的メソッドのみを呼び出すことができます。
System.out.println("呼び出し後: " + "i=" + i + "/t" + "j = " + j);//呼び出し後
}
}
実行結果:
次のようにコードをコピーします。
呼び出し前: i = 10 j = 100
呼び出し後: i = 10 j = 100
注:exchange(i, j) を呼び出すと、実パラメータ i と j はそれぞれ対応する仮パラメータ a と b に値を渡します。メソッドexchange() が実行されると、仮パラメータの値が変化します。パラメータ a と b は、実際のパラメータには影響しません。i と j の値は、呼び出しの前後で変化しません。
参照渡し --- オブジェクトをパラメータとして渡す
次のようにコードをコピーします。
クラスブック{
文字列名。
プライベートフォレート価格。
Book(String n, float){ //構築メソッド
名前 = n;
価格 = p;
}
static void change(Book a_book, String n, float p){ //静的メソッド、パラメータとしてのオブジェクト
a_book.name = n;
a_book.price = p;
}
public void Output(){ //インスタンスメソッド、オブジェクト情報を出力
System.out.println("名前: " + 名前 + "/t" + "価格: " + 価格);
}
}
パブリック クラス PassAddr{
public static void main(String [] args){
ブック b = 新しいブック("java2", 32.5f);
System.out.print("呼び出し前:/t"); //呼び出し前
b.出力();
b.change(b, "c++", 45.5f); //参照転送、オブジェクト b の参照を転送、オブジェクト b の値を変更
System.out.print("呼び出し後:/t"); //呼び出し後
b.出力();
}
}
実行結果:
次のようにコードをコピーします。
呼び出し前: 名前:java2 価格:32.5
呼び出し後: 名前:c++ 価格:45.5
注:change(b,"c++",45.5f) を呼び出すと、オブジェクト b が実パラメータとして使用され、参照が対応する仮パラメータ a_book に渡されます。実際、a_book も同じオブジェクトを指します。の場合、オブジェクトには b と a_book という 2 つの参照名があります。メソッドchange()を実行すると、仮パラメータa_bookに対する演算が実パラメータbに対する演算になります。