Геттеры и сеттеры не распространены в Scala.Фактически переменная внутренне реализована двумя методами, подобными методам получения / установки.Если вы хотите непостоянное решение (которого обычно избегают в Scala, если это возможно), вы можете просто написать
trait Node {
var left:Node
var right:Node
var value:Int
}
class Node2D(var left:Node, var right:Node, var value:Int) extends Node
Интерфейс Node предоставляет небольшое дополнительное значение, и мне не нравится идея vars вэто, так что я бы, вероятно, полностью избавился от интерфейса или в итоге получил бы интерфейс только для чтения и изменяемый класс:
trait Node {
def left:Node
def right:Node
def value:Int
}
class Node2D(var left:Node, var right:Node, var value:Int) extends Node
Обратите внимание, что сопоставление с образцом значительно упрощает получение в Scalaвернитесь к более конкретному типу (например, Node2D
из Node
), поэтому не беспокойтесь о случаях, когда вам потребуется instanceof
в Java.