这段代码在Java中的输出是什么?
我试着运行代码,并收到错误“点无法解析为变量”。为什么我得到这个错误,请尝试自己运行代码,并分享你得到的输出是什么。谢谢。这段代码在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);
}
}
进口点类
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);
}
}
是的,这也是问题之一,但它不会完全解决OP的问题,因为OP没有导入所需的类。 –
好的我编辑了我的答案 –
“Point”类不适用于我运行程序。
假设它是可用的,并且您可以编译,那么,如前面的响应所示......您无法在addToXTwice()方法中访问p1.x,因为输入参数是'a'和'b'。
与“进口java.awt.Point中”,我得到以下编译错误
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
这些都是对准从内部addToXTwice()方法中的“P1”不可用以前的评论。
'addToXTwice(int a,Point b)'而不是p1有b作为参数传递,所以你应该在addToXTwice()方法里改变p1 –
使用'bx'而不是'p1.x',因为在这个函数范围内没有'p1' addToXTwice(int a,Point b)' –
我们也会得到同样的错误,你在哪里导入'Point' ? –
分享整个堆栈跟踪。也分享Point Class的全部细节。这是你写的一堂课吗?或者它是java.awt.Point还是它org.openqa.selenium.Point? – Bopsi