【发布时间】:2021-03-11 01:29:20
【问题描述】:
如何在 Java 中调用这些替代的静态构造函数?
我想使用 newFromLatLong 格式创建一个 Location 对象,但不知道如何
public class Location {
public final double x;
public final double y;
public Location(double x, double y) {
this.x = x;
this.y = y;
}
public static Location newFromPoint(Point point, Location origin,
double scale) {
return new Location(point.x / scale + origin.x, origin.y - point.y
/ scale);
}
public static Location newFromLatLon(double lat, double lon) {
double y = (lat - CENTRE_LAT) * SCALE_LAT;
double x = (lon - CENTRE_LON)
* (SCALE_LAT * Math.cos((lat - CENTRE_LAT) * DEG_TO_RAD));
return new Location(x, y);
}
【问题讨论】:
-
这些是类方法,您可以像调用任何其他类方法一样调用它们。
-
我必须在现有位置上使用它们吗?为什么它们看起来像这样的构造函数?
-
这些静态方法不是构造函数(构造函数是非静态的,没有返回类型)。这些方法创建新对象。它们可以被调用为
Location location = Location.newFromLocation(lat, lon) -
顺便说一句,这个术语是静态构建器方法。
标签: java constructor static