KOTLIN

코틀린(Kotlin) 함수 & 클래스 사용하기

사과씨앗 2020. 12. 27. 17:58
728x90
반응형

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)  {
                
    
}

다음 글에서는 클래스의 상속과 학장에 대해서 알아보겠습니다.

 

감사합니다.

 

728x90
반응형