Посмотрите на этот пример:
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.
Спасибо за помощь и время!:)