得到类预期错误(nooby)

时间:2013-10-15 20:13:11

标签: java

letme首先说,我是编程和本网站的新手。 这是我第一次来这里,这是我的第二个编程项目! :)

我在编译时在底部得到一些错误,在-x2上得到红色框并且可能也会超过y2。错误是意外类型。

基本上做一个项目来获得点的差异,这还没有完成,但我不知道如何解决编译错误。起初我尝试添加用于存储x2和y2的字段,并且确实解决了这个错误只是为了给我另一个(我删除了,因为我不想添加更多字段)。最后我想我需要return math.sqrt(double x3) + math.sqrt(double y3)

任何建议表示赞赏,即时通讯使用蓝鸟。我相信这对你们中的一些人来说可能很容易Guru记​​住我的新东西! :)

public class Point {
    //fields holding info for x,y
    private double x;
    private double y;

    //default constructor, set to 0.0
    public Point()  {
        x = 0.0;
        y = 0.0;
    }

    //constructor that user can set field values
    public Point (double x, double y) {
            this.x = x;
            this.y = y;
    }

    //This is optional. return value of x
    public double getx () {
        return x;
    }

    //This is optional. return value of y
    public double gety () {
        return y;
    }

    //take new parameter find distance between field parameter and new parameter 
    public double distanceTo (double x2, double y2) {
        x - x2 = x3;
        y - y2 = y3;
    }
}

3 个答案:

答案 0 :(得分:5)

在Java(和大多数编程语言)中,你不应该认为自己要编写方程式而是指令:

=基本上意味着将左边的“东西”当作正确的“东西”,或者用StormeHawke的话来说

  

Java中的=运算符和大多数其他编程语言不应该   在精神上被理解为“等于”,而是“被定义为”

所以

x3= x - x2;

是有效的,因为您可以将x3更改为x - x2,但

x - x2 = x3;

无效,因为您更改了左侧的哪个内容:x,x2或两者?

这意味着以下内容是完全合理的;

x=x+1;

作为一个等式,这没有任何意义,但作为一个指令它是完全有意义的,它“使x等于x现在加1”

其他问题

  • 解决此问题后,您还会发现distanceTo()已定义 作为返回双倍但不是,你需要返回一些“答案” 或改变其回归无效
  • x3也没有被定义为“正在”任何东西,它需要在使用之前/之后声明,可以推测为双重

答案 1 :(得分:1)

x - x2 = x3;是Java中不正确的语法,您的distanceTo()方法应该返回double,但您不会返回任何内容。

答案 2 :(得分:1)

你得到类预期错误,因为编译器不知道x3和y3是什么。您必须先声明它们:double x3;才能使用它们。 但是,您的distanceTo方法的实现也应该改变。