티스토리 뷰

반응형

코틀린은 자바와 똑같이 클래스는 class 키워드를 사용합니다.

자바에서의 클래스와 생성자 및 초기 코드 작성 방법

class ClassName {
	ClassName() {
		System.out.println("Constructors");
	}
	ClassName(String str) {}
	ClassName(String str, int i) {}
}

 

코틀린에서의 클래스와 생성자 및 초기 코드 작성 방법

/*
 constructor 키워드 생략가능
 코틀린의 클래스는 기본생성자와 하나 이상의 보조 생성자를 가질수 있습니다.
 */
class ClassNameA1 {}
class ClassNameA2 constructor() {}

// 생성자에 매개변수가 있는 형태
class ClassNameB1(str: String) {}
class ClassNameB2 constructor(str: String) {}

// 보조 생성자가 있는 클래스
// 기본 생성자가 있을 경우 보조 생성자에 직접 또는 보조 생성자를 통해 간접적으로 위임해야합니다.
class ClassNameC1 {
	constructor() {}
	constructor(str: String) {}
	constructor(str: String, i: Int) {}
}

class ClassNameC2 constructor() {
	constructor(str: String) : this() {}
	constructor(str: String, i: Int) : this() {}
}

class ClassNameD1(str: String) {
	constructor() : this("ss") {}
	constructor(str: String, i: Int) : this(str) {}
}

class ClassNameD2 constructor(str: String) {
	constructor() : this("ss") {}
	constructor(str: String, i: Int) : this(str) {}
}

/*
 코틀린은 기본 생성자에는 코드를 포함 할수 없습니다.
 초기 실행코드가 필요할 경우 보조 생성자 또는 init 키워드를 사용하시면 됩니다.
 init은 여러개 사용 가능하며, 위에서 아래로 순서대로 실행되며, 보조 생성자 보다 먼저 실행됩니다.
 */
class ClassNameE {
	init {println("초기 코드 실행 1")}
	constructor() {	println("Constructor")}
	init {	println("초기 코드 실행 2")}
	init {	println("초기 코드 실행 3")	}
}
/*
 실행 결과
 초기 코드 실행 1
 초기 코드 실행 2
 초기 코드 실행 3
 Constructor
 */

자바 클래스 인스턴스 생성방법은 new ClassName();

코틀린 클래스 인스턴스 생성방법은 일반 함수처럼 new 없이 ClassName()으로 호출 합니다.

 

위 코드를 이해하기 위해서는 아래 코틀린 문법이 필수입니다.

2019/05/19 - [Kotlin] - 코틀린 기초 문법) 1. 코틀린 변수 정의하기

2019/05/19 - [Kotlin] - 코틀린 기초 문법) 2. 코틀린 함수 정의하기

반응형
댓글
최근에 올라온 글
최근에 달린 댓글