Java 如何减去或添加两个坐标
我正试着将两个城市的两个坐标进行减法和加法。我想在一个无效的方法做这件事。你有什么建议,我该怎么做 例如: 我想用Java 如何减去或添加两个坐标,java,methods,coordinates,void,Java,Methods,Coordinates,Void,我正试着将两个城市的两个坐标进行减法和加法。我想在一个无效的方法做这件事。你有什么建议,我该怎么做 例如: 我想用city2(x2,y2)减去city1(x1,y1)的坐标,然后在主类中调用它。那么怎么做呢 我在下面写了这段代码,但它不起作用,或者我不知道如何调用它 主要类别: public class Main { public static void main(String[] args) { Coordinates paris = new Coordinates
city2(x2,y2)
减去city1(x1,y1)
的坐标,然后在主类中调用它。那么怎么做呢
我在下面写了这段代码,但它不起作用,或者我不知道如何调用它
主要类别:
public class Main {
public static void main(String[] args) {
Coordinates paris = new Coordinates(48.830103, 2.562957);
Coordinates rioDeJaneiro = new Coordinates(-22.492147, -43.143827);
坐标类:
public class Coordinates {
private double latitude;
private double longitude;
public Coordinates(double latitude, double longitude) {
this.latitude = latitude;
this.longitude = longitude;
}
public double getLatitude() {
return this.latitude;
}
public double getLongitude() {
return this.longitude;
}
public void subtract(Coordinates otherCoordinates) {
new Coordinates(this.latitude - otherCoordinates.getLatitude(),
this.longitude - otherCoordinates.getLongitude());
}
您的代码无法按预期工作。 你的减法应该是下面这样的
public void subtract(Coordinates otherCoordinates) {
this.latitude = this.latitude- otherCoordinates.getLatitude();
this.longitude = this.longitude- otherCoordinates.getLongitude();
}
如果纬度和经度是不可变的,那么
public Coordinates subtract(Coordinates otherCoordinates) {
return new Coordinates(this.latitude - otherCoordinates.getLatitude(),
this.longitude - otherCoordinates.getLongitude());
}
这很有效。另一种方式是:
public static void subtract(Coordinates city1, Coordinates city2, Coordinates result) {
result.longitude = city1.getLongitude() - city2.getlongitude());
result.latitude = city1.getLatitude() - city2.getLatitude();
}
然而,您发布的修改后的解决方案是最好的(正如已经指出的)
在后一种情况下,假设subtract
是坐标
类中的一种方法,您可以如下调用它:
Coordinates city1 = new Coordinates(...);
Coordinates city2 = new Coordinates(...);
Coordinates result = city1.subtract(city2);
“…它不起作用了,或者我不知道怎么称呼它…”-那是什么意思?你有编译错误吗?运行时异常?意外行为?请准确,并尽可能多地包含相关信息。@Turing85谢谢,是的,我没有正确解释。我没有得到我想要的结果。结果是错误的。我没有收到任何错误,但它不能正常工作。我会更加注意下一次的提问方式。请创建一个示例输入、预期输出和观察到的输出。@转义您的预期输出是什么?您想要巴黎对象中的新坐标还是新对象中的新坐标。@RamPrakash是的,我想要新坐标,就像我想要3-1=2一样,但只需要坐标。这是一种无效类型的方法。不一定是。如果
坐标
被设计为不可变,那么创建一个新的坐标
-对象是正确的方法。在发布推测性答案之前,请要求澄清。@Turing85好观点。@RamPrakash谢谢。在我的主类中如何调用此方法?像这样:巴黎。减去(伦敦)@Escape将坐标类和主类添加到question@RamPrakash我添加了main和Coordinates,它可以工作,但会产生副作用。我不推荐这种解决方案。我宁愿重新开始使用返回值。我完全同意。但是OP想要使用一种无效的方法。只是想简单地解释一下,帖子中没有任何内容说“该方法必须有一个void
returntype”=)。在我看来,有相互矛盾的信息。该方法的实现就好像OP想要返回一个新的坐标
,而该方法被定义为void
。
Coordinates city1 = new Coordinates(...);
Coordinates city2 = new Coordinates(...);
Coordinates result = city1.subtract(city2);