Как мне представить аргументы конструктора Scala в качестве открытых членов?
Посмотрите на этот пример:
class Point(x: Double, y: Double){
override def toString = "x: " + x + ", y: " + y
def +(sourcePoint: Point) : Point = {
return new Point(x + sourcePoint.x, y + sourcePoint.y
}
}
Как видите, я хочу определить+
операторный метод на классе Point. Но это не сработает, потому что в этом методеx
а такжеy
не могут быть доступны наsourcePoint
локальная переменная, так как они являются частными, поэтому я изменил пример на это:
class Point(_x: Double, _y: Double){
var x = _x
var y = _y
override def toString = "x: " + x + ", y: " + y
def +(sourcePoint: Point) : Point = {
return new Point(x + sourcePoint.x, y + sourcePoint.y)
}
}
Это, очевидно, сработало, однако есть более простой способ определить эти переменные вместо перехода от _x -> x и _y -> y.
Спасибо за помощь и время! :)