【问题标题】:What is the output of this code in Java?这段代码在 Java 中的输出是什么?
【发布时间】:2016-11-28 06:41:10
【问题描述】:

我尝试运行代码,但收到错误“无法将点解析为变量”。为什么我会收到此错误,请尝试自己运行代码并分享您得到的输出。谢谢。

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);
    }
}

【问题讨论】:

  • 使用b.x而不是p1.x,因为在这个函数范围addToXTwice(int a, Point b)中没有p1
  • 我们也会得到同样的错误,你在哪里导入了Point
  • 共享整个堆栈跟踪。也分享Point Class的全部细节。是你写的课吗?还是 java.awt.Point 还是 org.openqa.selenium.Point?

标签: java class


【解决方案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);
    }
}

【讨论】:

  • 是的,这也是问题之一,但它不会完全解决 OP 的问题,因为 OP 没有导入所需的类。
【解决方案2】:

我无法使用“Point”类来运行您的程序。

假设它可用并且您能够编译,那么,如先前的响应所示...您无法在 addToXTwice() 方法中访问 p1.x,因为输入参数是“a”和“b”。

使用“import java.awt.Point”,我得到以下编译错误

javac -g ReferenceMystery1.java 参考Mystery1.java:18:错误:找不到符号 p1.x = 一个; ^ 符号:变量 p1 位置:类 ReferenceMystery1 参考Mystery1.java:19:错误:找不到符号 System.out.println(a + " " + p1.x); ^ 符号:变量 p1 位置:类 ReferenceMystery1 2 个错误

这些与以前在 addToXTwice() 方法中不可用的“p1”的 cmets 保持一致。

【讨论】:

  • addToXTwice(int a, Point b) 不是 p1 而是 b 作为参数传递,所以你应该在 addToXTwice() 方法中更改 p1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-14
  • 2016-11-01
  • 2016-04-20
相关资源
最近更新 更多