我在编译时在底部得到一些错误,在-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;
}
}
答案 0 :(得分:5)
在Java(和大多数编程语言)中,你不应该认为自己要编写方程式而是指令:
=基本上意味着将左边的“东西”当作正确的“东西”,或者用StormeHawke的话来说
Java中的=运算符和大多数其他编程语言不应该 在精神上被理解为“等于”,而是“被定义为”
所以
x3= x - x2;
是有效的,因为您可以将x3更改为x - x2,但
x - x2 = x3;
无效,因为您更改了左侧的哪个内容:x,x2或两者?
这意味着以下内容是完全合理的;
x=x+1;
作为一个等式,这没有任何意义,但作为一个指令它是完全有意义的,它“使x等于x现在加1”
distanceTo()
已定义
作为返回双倍但不是,你需要返回一些“答案”
或改变其回归无效答案 1 :(得分:1)
x - x2 = x3;
是Java中不正确的语法,您的distanceTo()
方法应该返回double
,但您不会返回任何内容。
答案 2 :(得分:1)
你得到类预期错误,因为编译器不知道x3和y3是什么。您必须先声明它们:double x3;
才能使用它们。
但是,您的distanceTo
方法的实现也应该改变。