tôi đang học Scala, và tôi không thể tìm ra cách để thể hiện tốt nhất lớp Java đơn giản này trong Scala:tương đương của các lĩnh vực thức public static trong Scala
public class Color {
public static final Color BLACK = new Color(0, 0, 0);
public static final Color WHITE = new Color(255, 255, 255);
public static final Color GREEN = new Color(0, 0, 255);
private final int red;
private final int blue;
private final int green;
public Color(int red, int blue, int green) {
this.red = red;
this.blue = blue;
this.green = green;
}
// getters, et cetera
}
Điều tốt nhất tôi có là như sau:
class Color(val red: Int, val blue: Int, val green: Int)
object BLACK extends Color(0, 0, 0)
object WHITE extends Color(255, 255, 255)
object GREEN extends Color(0, 0, 255)
Nhưng tôi mất lợi thế khi có BLACK, WHITE và GREEN được gắn với không gian tên màu.
(Tôi không phải là người Scala. Điều đó có hiệu quả đối với các lớp "cuối cùng" không?) –
Bạn không thể mở rộng lớp cuối cùng, nhưng bạn có thể làm cho nó "kín" để không thể mở rộng ra ngoài bộ biên dịch hiện tại . –