2016-11-28 7 views
-5

コードを実行しようとしましたが、「ポイントを変数に解決できません」というエラーが表示されます。なぜこのエラーが発生しているのですか?自分でコードを実行して、出力が何であるかを共有してみてください。ありがとう。このコードのJavaでの出力は何ですか?

public class ReferenceMystery1 { 
    public static void main(String[] args) { 
     int a = 7; 
     int b = 9; 
     Point p1 = new Point(2,2); 
     Point p2 = new Point(2,2); 
     addToXTwice(a, p1); 
     System.out.println(a + " " + b + " " + p1.x + " " + p2.x); 
     addToXTwice(b, p2); 
     System.out.println(a + " " + b + " " + p1.x + " " + p2.x); 

    } 

    public static void addToXTwice(int a, Point b) { 
     a = a + a; 
     p1.x = a; 
     System.out.println(a + " " + p1.x); 
    } 
} 
+3

この関数スコープに 'p1'がないので、' p1.x'の代わりに 'bx'を使います。' addToXTwice(int a、Point b) ' –

+1

' Point'をインポートしたときも同じエラーが発生します。 ? –

+0

スタックトレース全体を共有します。また、Point Classの詳細を共有します。それはあなたによって書かれたクラスですか?またはそれはjava.awt.Pointですか、それともorg.openqa.selenium.Pointですか? – Bopsi

答えて

1

輸入・ポイント・クラス

import java.awt.Point; 

置き換える

p1.x = a; 
System.out.println(a + " " + p1.x); 

b.x = a; 
System.out.println(a + " " + b.x); 

への完全な作業コードは

です
import java.awt.Point; 
public class HelloWorld{ 

public static void main(String[] args) { 
    int a = 7; 
    int b = 9; 
    Point p1 = new Point(2,2); 
    Point p2 = new Point(2,2); 
    addToXTwice(a, p1); 
    System.out.println(a + " " + b + " " + p1.x + " " + p2.x); 
    addToXTwice(b, p2); 
    System.out.println(a + " " + b + " " + p1.x + " " + p2.x); 
} 

public static void addToXTwice(int a, Point b) { 
    a = a + a; 
    b.x = a; 
    System.out.println(a + " " + b.x); 
    } 
} 
+0

はいこれも問題の1つですが、OPが必要なクラスをインポートしていないため、OPの問題を完全に解決することはできません。 –

+0

ok私は自分の答えを編集しました –

0

"Point"クラスは私のプログラムを実行するのに利用できません。

コンパイルが可能であると仮定すると、入力パラメータが 'a'と 'b'であるため、addToXTwice()メソッド内でp1.xにアクセスすることはできません。 、私はこれらの

javac -g ReferenceMystery1.java ReferenceMystery1.java:18: error: cannot find symbol p1.x = a; ^ symbol: variable p1 location: class ReferenceMystery1 ReferenceMystery1.java:19: error: cannot find symbol System.out.println(a + " " + p1.x); ^ symbol: variable p1 location: class ReferenceMystery1 2 errors

次のコンパイルエラーを取得し、「輸入java.awt.Pointの」と

は「P1」は利用できませんaddToXTwice内から()メソッドの以前のコメントと整列しています。

+0

p1の代わりにaddToXTwice(int a、Point b) 'が引数として渡されるので、addToXTwice()メソッドの中でp1を変更する必要があります –

関連する問題