References: Do it! 코틀린 프로그래밍

사용자가 직접 정의한 클래스를 사용하는 방법을 알아봅니다.

 

 

1. 클래스정의.

 

프로젝트를 생성 후 패키지를 만듭니다. 그리고 그 아래 클래스를 하나 만들어 둡니다.

defineMyClass 패키지 아래 Person 클래스를 생성하였습니다.

이 클래스를 다른 패키지인 useMyClass의 메인함수에서 사용해 보겠습니다.

 

 

2. 클래스 사용하기.

 

Main.kt에 다음과 같이 코딩합니다.

package useMyClass

import defineMyClass.Person

fun main() {
    val user1 = Person("smoh", 28);
    println(user1.name)
    println(user1.age)
}

이후 실행하면 다음과 같은 결과값을 확인할 수 있습니다.

그런데 만약 useMyClass 패키지내에 Person클래스가 이미 존재하면 어떻게 쓸 수 있을까요 ?

이를 테스트하기 위해 useMyClass에도 Person클래스를 추가합니다. 그리고 다음과 같이 코딩합니다.

(** 물론 입력하는 자료형리 다르다면 똑똑한 컴파일러는 알아서 구분해주긴 합니다.)

package useMyClass
class Person(val name: String, val dob: Int)

이제 main에서 같은 패키지 내의 Person클래스를 사용해 보려고 합니다.

뭔가 문제가 생긴것을 볼 수 있습니다. user2는 같은 패키지 안에 있는 Person을 사용하고 싶은데 자동으로 defineMyClass 안에 있는 Person을 생성해 버립니다.

 

이 둘을 구분하여 쓰기 위해 "as"를 사용해 별명을 붙입니다.

코드를 다음과 같이 수정합니다.

as를 사용해 별도로 이름을 지정해 주면 같은 이름의 클래스를 구분할 수 있습니다.

 

 

 

반응형

+ Recent posts