Skip to content

Instantly share code, notes, and snippets.

@mcdoyaji
Last active February 18, 2016 15:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mcdoyaji/b5f92e6a53ecd36671ad to your computer and use it in GitHub Desktop.
Save mcdoyaji/b5f92e6a53ecd36671ad to your computer and use it in GitHub Desktop.
object Daddy{
val objName = "Singleton Object Instance!!"
def apply(name:String) = new Daddy(name)
def apply(name:String, name2: String) = new Mommy(name, name2)
def printName(person:Daddy) { println(person.name)}
def printName(person:Mommy) { println(person.name)}
}
trait Person{
def printName(person:Daddy) {println(Daddy.objName)}
}
class Daddy(private val name: String) extends Person
class Mommy(val name: String, name2: String) extends Person
object ScalaJSExample extends js.JSApp {
def main() = {
println("싱글턴 객체 Main 을 통해서 Main 과 Mommy 객체의 인스턴스 생성")
println(Daddy("hellen").hashCode) //Main 객체 생성
println(Daddy("ache!").hashCode) // Main 객체 생성
println(Daddy("keller","kill!!").hashCode) // Mommy 객체 생성
println("생성된 객체 인스턴스를 변수에 담고")
val main1 = Daddy("hellen")// Main 객체 생성
val main2 = Daddy("ache!") // Main 객체 생성
val mommy = Daddy("keller","kill") // Mommy 객체 생성
println("인스턴스의 패키지주소를 제외한 클래스 이름을 확인")
println(main1.getClass().getSimpleName())
println(main2.getClass().getSimpleName())
println(mommy.getClass().getSimpleName())
println(Daddy.getClass().getSimpleName())
// If the class is an inner, nested, local or anonymous class, the compiler should generate at least one $ in its class-file name
println("싱글턴 객체의 printName 메소드로 전달받은 인스턴스의 name 값을 출력한다.")
// Main 클래스 인스턴스는 private 속성 까지 접근 가능함을 알 수 있다.
Daddy.printName(main1)
Daddy.printName(mommy)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment