gpt4 book ai didi

java - Eclipse 中的 java 中未定义构造函数,尽管已定义

转载 作者:行者123 更新时间:2023-11-30 03:05:23 24 4
gpt4 key购买 nike

请帮忙....我是 Java 新手。我正在尝试编写一个包含类“point”的代码到 Eclipse(Luna) 中的公共(public)类“PeterAndSnowBlower”中。我也尝试过在“point”类中公开变量 x, y ,但它给出了相同的错误。我还在构造函数中使用了 this.x 和 this.y 而不是 x 和 y

这是我的代码:

import java.util.*;
public class PeterAndSnowBlower {
class point{
int x;
int y;
public point() {
x = y = 0;
}
public point(int a, int b){
x = a;
y = b;
}
public point(point p) {
x = p.x;
y = p.y;
}
public double distance(point P){
int dx = x - P.x;
int dy = y - P.y;
return Math.sqrt(dx*dx + dy*dy);
}
}
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int n, x, y;
point P = new point(0, 0);
n = in.nextInt();
P.x = in.nextInt();
P.y = in.nextInt();
Vector<point>points = new Vector<point>();
for(int i = 0; i < n; i++){
x = in.nextInt();
y = in.nextInt();
points.add(new point(x, y));
}
double r1, r2;
r1 = r2 = P.distance(points.get(0));
for(point point:points){
r1 = Math.max(r1, P.distance(point));
}

}
}

错误是:

Multiple markers at this line
- No enclosing instance of type PeterAndSnowBlower is accessible. Must qualify the allocation with an enclosing instance of type PeterAndSnowBlower (e.g.
x.new A() where x is an instance of PeterAndSnowBlower).
- The constructor PeterAndSnowBlower.point(int, int) is undefined

最佳答案

除非内部类定义为static,否则无法从外部类的静态方法实例化它。 非静态类需要this对外部类的引用。

这里将此类声明为static是有意义的。显然它不是指外部类。

关于java - Eclipse 中的 java 中未定义构造函数,尽管已定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34918940/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com