Classes and Objects
Simple Constructors
Build an object with constructor parameters.
simple-constructor
A class constructor receives values and stores them in fields.
Simple Constructors
SimpleConstructor.scala
Replay: real traced execution (multi-file project)
class Student(val name: String, val level: Int) {
override def toString: String = "[student]"
}
object Main {
def main(args: Array[String]): Unit = {
val name = "Ari"
val student = new Student(name, 2)
val label = student.name + ":" + student.level
println("name=" + student.name)
println("label=" + label)
}
}
class Student(val name: String, val level: Int) {
override def toString: String = "[student]"
}
object Main {
def main(args: Array[String]): Unit = {
val name = "Bea"
val student = new Student(name, 2)
val label = student.name + ":" + student.level
println("name=" + student.name)
println("label=" + label)
}
}
class Student(val name: String, val level: Int) {
override def toString: String = "[student]"
}
object Main {
def main(args: Array[String]): Unit = {
val name = "Cam"
val student = new Student(name, 2)
val label = student.name + ":" + student.level
println("name=" + student.name)
println("label=" + label)
}
}
name ← Ari, student ← [student], label ← Ari:2
5object Main {6 def main(args: Array[String]): Unit = {7 val name→ Ari = "Ari" //@name="Bea", "Cam"8 val student→ [student] = new Student(nameAri, 2)9 val label→ Ari:2 = student[student].name + ":" + student.level21011 println("name=" + student.nameAri)12 println("label=" + labelAri:2)13 }14}outputname=Ari label=Ari:2
name ← Bea, student ← [student], label ← Bea:2
5object Main {6 def main(args: Array[String]): Unit = {7 val name→ Bea = "Bea"8 val student→ [student] = new Student(nameBea, 2)9 val label→ Bea:2 = student[student].name + ":" + student.level21011 println("name=" + student.nameBea)12 println("label=" + labelBea:2)13 }14}outputname=Bea label=Bea:2
name ← Cam, student ← [student], label ← Cam:2
5object Main {6 def main(args: Array[String]): Unit = {7 val name→ Cam = "Cam"8 val student→ [student] = new Student(nameCam, 2)9 val label→ Cam:2 = student[student].name + ":" + student.level21011 println("name=" + student.nameCam)12 println("label=" + labelCam:2)13 }14}outputname=Cam label=Cam:2