본문 바로가기

Kotlin

[Kotlin] 2. 코틀린 기본 - 맛보기

#What

  • kotlin을 사용하기 위한 최소한의 코드 작성법을 알아보자

 


#변수

  • 변수 선언 키워드 val vs var
  • val = value = 변경 불가 = immutable =한 번 값이 셋팅 되면 변경 할 수 없는 final 변수
  • var = variable = 변경 가능 = mutable

 

  • 타입 생략 가능/코틀린 컴파일러가 타입 추론 해 줌
  • val testStr : String (가능)
  • val testStr  = "" (가능)
  • val test (불가능 -> 타입을 생략할 경우 초기화 필수!! 왜?? 컴파일러가 타입 추론할 건덕지가 없기 때문)

 

#함수

fun 함수명(param1 : String, param2 :String) : 리턴타입{
	return ~
}

fun getLongerString(str1 : String, str2 :String) : String {
	return if(str1.length > str2.length) str1 else{str2}
}

 

'식' = 'expression'(변수 대입 가능) 으로 Return 표현 가능 

fun getLongerString(str1 : String, str2 :String) : String = if(str1.length > str2.length) str1 else{str2}

 

'식' = 'expression'('변수 대입 가능) 으로 Return 표현 시 Return 타입 생략 가능 (이 또한 컴파일러 타입 추론)

fun getLongerString(str1 : String, str2 :String) = if(str1.length > str2.length) str1 else str2

 

함수가 꼭 클래스 안에 있지 않아도 된다

//한 파일 내에 class와 function을 따로 사용 할 수 있다
class Test(val param: String, val param2: String) {
         			~~~
}

fun funOutOfClass(): Boolean {
    var result: Boolean = true
				~~~
    return result
}

//여러 클래스를 한 파일에 넣어 사용 할 수도 있다
class Test2(val param: String, val param2: String) {
         			~~~
}

 

#클래스

  • 기본적으로 public (생략 가능)
  • 자바의 멤버변수와 getter setter를 자동으로 만들어주는 property 기능 제공(property  = 필드 + 접근자)

 

클래스 선언 with 프로퍼티

class Student(var name : String, var age : Int) //프로퍼티

프로퍼티 사용법

val student = Student("Tina", 20)
    
    println(student.name) // == student.getName()
    println(student.age)// == student.getAge()
    
    student.age = 30 // == student.setAge(30)

 

프로퍼티 응용법

isAdult처럼 추가로 프로퍼티를 추가해서 쓸 수 있으며, getter의 return 값을 내부에서 생성해서 반환 할 수 있다(getter만 존재)

class Student(var name:String, var age : Int){
    
    //프로퍼티의 접근자를 직접 작성(커스텀 접근자) (1)
    val isAdult : Boolean
       get(){
        return age>20
    }   
    
    //프로퍼티의 접근자를 직접 작성(커스텀 접근자) (2)
    val isAdult2: Boolean
        get() = age > 20
}
val student = Student("Tina", 20)
    println(student.isAdult)
    println(student.isAdult2)

 

 

출처 : Kotlin In Action - 에이콘 출판사

(위 도서를 학습하고 개인 학습용으로 정리한 내용입니다)


 

 

 

문제 있을시 알려 주세요.

 

좋은 하루 되세요!