What is Kotlin?
# JetBrains에서 2011년 공개한 프로그래밍 언어
# Java와 상호 호환
# JVM, Android, 브라우저에서 동작
# coroutines 지원
# Null 안정성
# 코틀린 공식 사이트 : https://kotlinlang.org/
# 코틀린 온라인 공부 사이트 : https://play.kotlinlang.org
Android와 Kotlin의 관계
# Java와 100%호환을 통해 Android API그대로 사용가능
# Ant, Maven, Gradle build 시스템 사용가능
# Android studio를 통한 Java → Kotlin 변환도구 제공
Java vs Kotlin
java와 코틀린과 차이점을 정리해 보았다. 각 언어의 버젼별로, 상황별로 다른점이 많으나, 그 중 몇가지 중점적으로 봐야할 것을 뽑아 보았다.
함수 표현
// Java [public/private/protected] ReturnType 함수이름(Type 변수들){ [return] } // Kotlin [public/private/protected] fun 함수이름(Type 변수들): ReturnType{ [return] }
기존 Java의 표현식과 다르게 함수이름 앞에 fun이라는 예약어를 붙이고 함수이름을 적어 선언한다.
변수 표현
// Java [public/private/protected] [static/final] Type 변수이름 [= <초기값>] // Kotlin [public/private/protected] [var/val] 변수이름[:Type] [= <초기값>] // Java String va1 = "hello"; // mutable, read and write possible final String va2 = "world"; // immutable, read only // Kotlin var va1 = "hello" // mutable, read and write possible val va2 = "world" // immutable, read only
var과 val로 변수를 선언하는데, val은 immutable, var은 mutable 변수이다.
Null 처리
// Java String nu1 = "hello"; nu1 = null; // Kotlin var nu1 :String = "hello" n1 = null // <---error:Null can not be a value of non-null type String var nu2 :String? = "hello" n2 = null // possible
변수 type뒤에 물음표를 붙임으로서 null 허용/비허용 여부를 선언할 수 있다. null이 비허용된 변수의 경우 null이 절대로 들어갈 수 없다.
Class 표현법
// Java public class Person { private final String name; public Person(String name){ this.name = name; } } // Kotlin class Person constructor(val name: String){}
constructor 예약어를 통해 생성과 동시에 지정되어야 하는 매개변수에 대해 선언 가능하다.
VO 표현법
// Java public class User { private String name; private int age; public int getAge(){ return age; } public void setAge(int age){ this.age = age; } public Stirng getName(){ return name; } public void setName(String name){ this.name = name; } } // Kotlin data class User(var name:String, var age:Int) // automatically make .equals(), .hashCode(), .toString(), .copy(), .componentN()
기존 java에서 value object를 선언하게 되면 oop의 원칙에 따라 매개변수는 private로 감추고 getter/setter을 통해 각 변수를 접근하였으나, Kotlin에서는 데이터 클래스를 사용하여 vo로 자주 사용하는 각종 함수를 자동으로 제공한다.
End of Document
반응형