2017-03-04 36 views
0

好了,所以我做了一個簡單的程序,實踐中的java多類,但我不beeing能夠找到這個問題的解決方案:使2個變量等於函數,VAR 1自動變更值VAR2

我有2 int[][]變量(座標),coords1coords2,都等於誰問的座標輸入功能,

奇怪的部份是第一個輸入後,coords1得到它的值,然後我輸入coords2,這也得到它的價值,但在同一時間coords1會自動獲得相同的值coords2,我不知道爲什麼,這裏的代碼:

if(simbolo.equals("circulo") || simbolo.equals("Circulo") || simbolo.equals("Circle") || simbolo.equals("circle")){ 
      circulo.setColour(); 
      colour1 = circulo.getColour(); 
      circulo.setColour(); //circulo 2 
      colour2 = circulo.getColour(); 
      coords1 = circulo.getCoords();           //IMPORTANT PART 
      System.out.println("coords1: " + coords1[0][0] + " " + coords1[0][1]);//IMPORTANT PART 
      coords2 = circulo.getCoords();//circulo2        //IMPORTANT PART 
      //System.out.println("coords2: " + coords2[0][0] + " " + coords2[0][1]); 
      System.out.println("2-coords1: " + coords1[0][0] + " " + coords1[0][1]);//IMPORTANT PART 
      circulo.setRaio(); 
      r1 = circulo.getRario(); 
      circulo.setRaio(); //circulo2 
      r2 = circulo.getRario(); 
      area1 = calcCircleArea(r1); 
      perimetro1 = calcCirclePerimeter(r2); 
      area2 = calcCircleArea(r1);//circulo2 
      perimetro2 = calcCirclePerimeter(r2); 
      distance = Distance(coords1, coords2); 
      System.out.println("A distância entre os centros dos círculos é: " + distance); 
      intersection = Intersects(distance, r1, r2); 
      System.out.println(intersection); 
     } 

第一System.out.println("coords1: " + coords1[0][0] + " " + coords1[0][1]);會讓我比System.out.println("2-coords1: " + coords1[0][0] + " " + coords1[0][1]);

這裏不同的值的函數setCoordinates()

public int[][] center = new int[1][2]; 

    Scanner scan = new Scanner(System.in); 

    public int[][] setCoordinates(){ 
    System.out.println("Introduza a coordenada do centro: x "); 
    center[0][0] = scan.nextInt(); 
    System.out.println("y: "); 
    center[0][1] = scan.nextInt(); 

    System.out.println("Centro atual: " + Arrays.toString(center[0])); 
    return center; 
    } 

類功能circulogetCoords()只能從這個返回值。

編輯:"IMPORTANT PART"是我用這些變量

一定有什麼東西我不這樣做的權利,但在哪裏?

謝謝

回答

2

正如你所聲明的變量中心setCoordinates方法,它是不是該方法的局部變量之外。這就是爲什麼每當您調用方法setCoordinates時,以前的值將被新值覆蓋。您需要聲明變量中心內部setCoordinates方法。