请帮助.... 我是Java新手。我正在尝试编写一个包含类"点"的代码。进入一个公共阶层" PeterAndSnowBlower"在Eclipse(Luna)中。 我也尝试过将变量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
答案 0 :(得分:1)
除非定义了内部类static
,否则无法从外部类的静态方法实例化它。 non-static
类需要this
引用外部类。
将此类声明为static
是有意义的。显然它并不是指外层阶级。
答案 1 :(得分:1)
您正在静态访问内部类(意味着您不是从外部类的实例执行此操作)。
你需要的是一个static
内部类,它在这里非常有意义,因为内部类没有引用外部类。
将声明更改为
static class point {