JAvaにおける実パラメータと形パラメータの違い

8431 ワード

1.形参はその名の通り:形式パラメータであり、メソッドを定義する際に使用されるパラメータであり、呼び出し元から伝達されるパラメータを受信するために使用される.パラメータは、メソッドが呼び出されたときにのみ、仮想マシンがメモリユニットを割り当て、メソッド呼び出しが終了すると割り当てられたメモリユニットが解放されます.したがって,パラメータはメソッド内部でのみ有効であるため,参照オブジェクトに対する変更もメソッド外に影響を及ぼすことはできない.2.実参はその名の通り:実際のパラメータであり、呼び出し時にメソッドに渡されるパラメータである.実パラメータは,別の方法に渡す前に予め割り当てられる.注意:値転送呼び出しでは、実パラメータのみが渡され、実パラメータの値が実パラメータに逆作用することはできません.関数呼び出し中に、パラメータの値は変更され、実パラメータの値は変更されません.リファレンス伝達呼び出しのメカニズムでは、実際には実パラメータ参照のアドレスがパラメータに伝達されるため、パラメータに発生する変化は実パラメータ変数にも発生する.3.コードインスタンス
public static void swap1(int x,int y){
       int tmp=x;
       x=y;
       y=tmp;
       System.out.println(x);
       System.out.println(y);
    }
    
    public static int[] swap(int [] array){
       int tmp=array[0];
       array[0]=array[1];
       array[1]=tmp;
       return array;
    }

    public static void main(String[] args) {
        int []array={10,20};
        System.out.println("x="+array[0]);
        System.out.println("y="+array[1]);
        int[] array1=swap(array);
        System.out.println("x2="+array[0]);
        System.out.println("y2="+array[1]);
        System.out.println("============");
        int a=10;
        int b=20;
        swap1(a,b);
        System.out.println("a="+a+"b="+b);

    :
     x=10
     y=20
     x2=20
     y2=10
     ============
     a=10  b=2
    }
}

原因分析:上記の基本タイプ変換に関するコードは、データの交換が完了していない.ベースタイプでは、パラメータは実パラメータのコピーに相当する.すなわち、値呼び出しです.基本タイプのデータを交換する場合は、配列に変換して交換する必要があります.