Scala Classes and Objects
Defining classes and objects in Scala
Class Definition
class Person { # simple class
var name: String = ""
var age: Int = 0
}
Primary Constructor
class Person(val name: String, var age: Int) { # constructor in header
println(s"Created: $name") # constructor body
}
Creating Objects
val person = new Person("John", 30) # instantiate with new
person.age = 31 # modify property
Case Classes
case class User(name: String, age: Int) # case class
val user1 = User("John", 30) # no "new" keyword
val user2 = user1.copy(age = 31) # copy with modification
Inheritance
class Animal {
def sound(): Unit = println("...")
}
class Dog extends Animal { # inherit from Animal
override def sound(): Unit = # override method
println("Woof")
}
Singleton Object
object Database { # singleton object
def connect(): Unit = { }
}
Database.connect() # access directly