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