Read fixed fields and calculate a derived value.

Immutable Records

ImmutableRecord.scala
class Point(val x: Int, val y: Int) {
  def summary: String = {
    x + "," + y
  }

  override def toString: String = "[point]"
}

object Main {
  def main(args: Array[String]): Unit = {
    val dx = 
    val point = new Point(3, 5)
    val movedX = point.x + dx
    val movedSummary = movedX + "," + point.y

    println("original=" + point.summary)
    println("moved=" + movedSummary)
  }
}
class Point(val x: Int, val y: Int) {
  def summary: String = {
    x + "," + y
  }

  override def toString: String = "[point]"
}

object Main {
  def main(args: Array[String]): Unit = {
    val dx = 
    val point = new Point(3, 5)
    val movedX = point.x + dx
    val movedSummary = movedX + "," + point.y

    println("original=" + point.summary)
    println("moved=" + movedSummary)
  }
}
class Point(val x: Int, val y: Int) {
  def summary: String = {
    x + "," + y
  }

  override def toString: String = "[point]"
}

object Main {
  def main(args: Array[String]): Unit = {
    val dx = 
    val point = new Point(3, 5)
    val movedX = point.x + dx
    val movedSummary = movedX + "," + point.y

    println("original=" + point.summary)
    println("moved=" + movedSummary)
  }
}
immutable-record An immutable object keeps its fields fixed. Code can calculate derived values without changing the object.