// Create Dog class and set properties to default value
class Dog {
var name = ""
var age = 0
}
// Create Dog Object
var dog = Dog()
// Set name property
dog.name = "Fido"
-----------------------------------
// Create Dog class while setting properties
class Dog(var name: String, var age: Int) {
}
// Create Dog Object while setting properties as parameters
var dog = Dog("Fido", 5)
var dog = Dog(name = "Fido", age = 10)
------------------------------------
// Create a Dog class using init function
class Dog {
var name: String
var age: Int
init {
name = ""
age = 0
}
}
---------------------------------------
// Create a Dog class using constructor
class Dog {
var name: String
var age: Int
constructor(name: String, age: Int) {
this.name = name
this.age = age
}
// Multiple constructors
constructor(name: String, age: Int): this() {
name = ""
age = 0
}
var dog = Dog()
var dog = Dog("Adrian, 35 ")
// Add functions to classes
fun dogInfo() {
println("$name) is $age years old")
}
}
----------------------------
// Aquarium
// add function in one line
fun volume() = width * height * length / 1000
// override getter to calculate value
val volume: Int
get() {
return width * height * length / 1000
}
// setters
var volume: Int
set(value) {
height = (value * 1000) / (width * length)
}
------------------------------
// Inheritance
open class Aquarium() {
open var water
}
class TowerTank(): Aquarium() {
override var water = volume * 0.8
}
--------------------------------
// Abstract classes
abstract class AquariumFish() {
abstract val color: String
}
class Shark: AquariumFish() {
override val color = "gray"
}
----------------------------
// Interfaces
interface FishAction {
fun eat()
}
class Shark: AquariumFish(), FishAction {
override val color = "gray"
override fun eat {
println("hunt and eat fish")
}
}
fun feedFish(fish: FishAction) {
fish.eat()
}
--------------------------------
// Singleton
object MobyDickWhale {
fun jump() {
// ...
}
}
// Enums
enum class Color(val rgb: Int) {
RED(0xFF0000),
GREEN(0x00FFF00),
BLUE(0x0000FF)
}
// Sealed Classes (class that can be subclassed but only in the same file in which it is declared)
sealed class Seal
class SeaLion: Seal()
class Walrus: Seal()