Pada dasarnya class adalah sebuah blueprint. Sebuah class dapat membuat sebuah object (dengan menggunkan keyword `new`). Misal class Mobil bisa membuat Object sedan, pickup, dll. Konsep class di scala sama seperti dipemrograman lain.
Create sebuah class.
Class bisa ada atau tanpa constructor. membuat constructor harus di definisi class nya tidak perlu menbuat method yg sama dengan nama classnya seperti di Java.
class Person (val pName : String, val pAge : Int) {
var name : String = pName
var age : Int = pAge;
// setter getter
def setName(name : String) = {
this.name = name
}
def getName() : String = this.name
def setAge(age : Int) = {
this.age = age
}
def getAge() : Int = this.age
}
Inisialisasi class menggunakan keywordnya. tapi ingat harus definisi variabel di scala harus menggunakan var / val.
contoh : val mperson : Person = new Person ("budi", 99)
Extending Class
class bisa juga diturunkan dengan cara diextend.
perlu didefinisikan juga varible parent yg harus dioverride di cosntructornya.
class Student(override val pName: String, override val pAge: Int,
val pAddress :String) extends Person(pName, pAge){
var address : String = pAddress;
def setAddress(address : String) = {
this.address = address
}
def getAddress() : String = this.getAddress()
}
Singleton Object.
Scala tidak menyediakan static variable / member seperti di java. Maka jika kita membutuhkan variable yg sifatnya static dan hanya sekali dicreate kita bisa menggunakan singleton object. Kalau di java seperti kita membuat static blok.
static {
// codes and variables
}
Contoh singleton object
object Person {
var p : Person = new Person("budi", 10)
def displayPerson() = {
println("name "+ p.getName() + " age "+ p.getAge())
}
}
Jadi di dalam object Person akan ada varible 'p' yang isinya selalu sama.
Untuk memanggil method di singleton object cukup lewat nama objectnya,
Person.displayPerson()
Companion object
Jika class dan object mempunyai nama sama dan berada di satu source file. hanya berbeda keyword 'class' dan 'object'. Dalam satu companion object bisa saling mengakses variable membernya masing-masing.
class Person (val pName : String, val pAge : Int) {
var name : String = pName
var age : Int = pAge;
// setter getter
def setName(name : String) = {
this.name = name
}
def getName() : String = this.name
def setAge(age : Int) = {
this.age = age
}
def getAge() : Int = this.age
}
object Person {
var p : Person = new Person("budi", 10)
def displayPerson() = {
println("name "+ p.getName() + " age "+ p.getAge())
}
}
Kapan mengunakan companion object?. varible yg sifatnya bisa berubah atau reuseable sebaiknya ditaruh di Class. sedangkan varible atau method yang sifatnya static / singleton / bisa dipake berkali kali sebaiknya ditaruh di Object.
Sekian dulu pembahasan tentang class dan object di scala dan selamat mencoba.
bersambung di materi scala selanjutnya
referensi :
http://docs.scala-lang.org/tutorials/tour/classes
http://docs.scala-lang.org/tutorials/tour/singleton-objects.html
No comments:
Post a Comment