为什么我在循环中既不是in也不是in输入的数据没有pointerFiller被Scanner写入points[0] = new Point(x, y);。points[i] = new Point(x, y);
public class Point {
private int lineCount;
private final int x;
private final int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public void pointsCreator() {
Scanner scanner = new Scanner(System.in);
lineCount = scanner.nextInt();
Point[] points = new Point[lineCount];
System.out.println("----------------------");
System.out.println("enter points for first line: ");
pointerFiller(scanner);
points[0] = new Point(x, y);
for (int i = 1; i < lineCount; i++){
System.out.println("----------------------");
System.out.println("enter points for next line:");
pointerFiller(scanner);
points[i] = new Point(x, y);
}
System.out.println("----------------------");
System.out.println(Arrays.toString(points));
}
public static Point pointerFiller(Scanner scanner) {
System.out.print(" - enter x: ");
int x = scanner.nextInt();
System.out.print(" - enter y: ");
int y = scanner.nextInt();
return new Point(x, y);
}
@Override
public String toString() {
return "Points for line {x = " + x + ", y = " + y + '}';
}
}
您在方法中
pointerFiller创建局部变量x,y。之后,创建了一个点,您将其返回,但您忽略了它。为什么
pointsCreator不是静态的呢?这个问题可以这样解决: