1. 함수
코틀린에서 함수는 fun키워드로 정의합니다.
fun 함수명(파라미터 이름: 타입):반환 타입{
return 값
}
fun test(number:Int):Int{
return 10
}
이런 식으로 선언하여 주시면 됩니다.
2. 클래스 & 생성자
클래스의 선언은 다른 언어와 큰 차이 없이 class 클래스명 {}으로 선언하여 줍니다.
생성자에 대해서 알아보겠습니다.
프라이머리(Primary) 생성자는 클래스의 헤더처럼 사용할 수 있으며 constructor 키워드를 사용하지만 경우에 따라 생략이 가능합니다.
class classTest constructor(name:String ,age:Int, company:String) {
}
constructor 키워드는 생성자에 접근 제한자나 특정 옵션이 없다면 생략이 가능합니다.
class classTest (name:String ,age:Int, company:String) {
}
접근 제한자를 사용할 시 constructor 키워드를 선언하여 줍니다.
class classTest private constructor(name:String ,age:Int, company:String) {
}
Primary 생성자의 경우 클래스의 헤더처럼 사용되어 코드 블록을 작성할 수 없지만 init 블록으로 대처할 수 있다.
class classTest constructor(name:String ,age:Int, company:String) {
init{
print("Primary 생성자 init 블럭")
}
}
Secondary생성자는 constructor 키워드를 사용하여 선언하여 줍니다.
class classTest {
constructor(name:String,age:Int){
}
}
companion object는 자바의 static과 유사하다고 생각하시면 됩니다. companion object 내부에 선언한 프로퍼티와 함수는 클래스를 생성자로 인스턴스 하지 않아도 사용할 수 있습니다.
class ClassTest {
//자바의 static 이라고 생각하면 됩니다.
companion object{
val number = 10;
fun testFun(){
print("companion object 테스트")
}
}
}
fun main(){
ClassTest.number
ClassTest.testFun()
}
DataClass는 class 앞에 data키워드를 사용하여 선언하여 주며 toString(), hashCode(), equals(), copy() 메서드를 자동으로 생성하여 주어 boilerplate code를 만들지 않아도 됩니다.
data class ClassTest(var name:String, var age:Int) {
}
다음 글에서는 클래스의 상속과 학장에 대해서 알아보겠습니다.
감사합니다.
'KOTLIN' 카테고리의 다른 글
코틀린(kotlin) 추상클래스 & 인터페이스 (0) | 2020.12.27 |
---|---|
코틀린(Kotlin) 상속 사용법 (open , override) (0) | 2020.12.27 |
코틀린(Kotlin) 반복문 사용하기 (0) | 2020.12.27 |
코틀린(Kotlin) 배열 & 컬렉션 (0) | 2020.12.27 |
코틀린(Kotlin) 조건문 if & when (0) | 2020.12.26 |