2016-11-13 2 views
0
package interview_programs; 
public class Swapping { 

    int x,y ; 

    Swapping(int a, int b){ 
    int x = a;  
    int y = b; 
    System.out.println("the valueof x is" + x); 
    System.out.println("the valueof y is" + y);  
    } 

    public void replace(){ 
    x = x + y; 
    y = x - y; 
    x = x - y;   
    System.out.println("the value after swap"); 
    System.out.println("the valueof x is" + x); 
    System.out.println("the valueof y is" + y);    
    } 

    public static void main (String args[]) { 
    Swapping Swap = new Swapping(10,5); 
    Swap.replace(); 
    } 
} 

これはコンソールに出力されます。replaceメソッドでxとyの値、つまり(10と5)の値が得られませんか?

出力:

のvalueOf X IS10

のvalueOfのY IS5

スワップ後の値

のvalueOfのX IS0

のvalueOf用のY IS0

答えて

0

xとyからintを取り出します。これらはローカル変数を作成しており、ローカルクラスフィールドを設定していません。

Swapping(int a, int b){ 
    x = a;  
    y = b; 
    System.out.println("the valueof x is" + x); 
    System.out.println("the valueof y is" + y);  
} 
2

クラスレベルのxとyではなく、コンストラクタ内のローカルのxとyを初期化します。

'int x = a'を 'x = a'に、 'int y = b'を 'y = b'に置き換えます。

関連する問題