코틀린에 대한 기본 상식
코틀린은 자바가상머신(JVM) 위에서 동작하기 때문에 자바에서 파생된 언어라고 할 수 있다.
코틀린은 널 안정성(null safety), 확장함수(extension function), 데이터 클래스(data class) ...
등등 개발자에게 편리함을 제공한다.
기존 자바 프로젝트에도 호환이 가능하기때문에, 통합이 가능하다.
형 변환
코틀린은 형변환의 오류를 발생시키지 않게 하기위해 암시적 형변환을 지원하지 않는 언어이다
암시적 형변환은 자동으로 형변환을 시켜주는 것 이라고 생각해도된다.
형 변환 함수
toByte(), toShort(), toInt(), toLong(), toFloat(), toDouble(), toChar()
to ~ 기존 형에서 ~ 형으로 변환해준다는 뜻
타입 추론
변수나 함수를 선언 할때 필수적으로 자료형을 주입하지 않아도 코틀린에서 자동으로 해석해준다.
그렇다고 해서 넣지않는 것보다 넣는 것이 조금더 바람직한 코드라고 생각한다.
var num1 = 1234 // int
var num2 = 1234L // long
var bool = true // boolean
var str = 't' // char
클래스, 인스턴스
흔히 붕어빵으로 많이 비교하는 클래스이다.
간단하게 설명하고 넘어가자면, 클래스는 붕어빵 틀이고,
인스턴스는 붕어빵 틀에 들어가서 반죽과 앙금이 합해져 만들어진 붕어빵이다.
프로그래밍적으로 설명하면,
클래스는 틀이다. 클래스가 정한 틀안에 정보가 들어가서 만들어진 서로 다른 객체가 인스턴스이다.
클래스는 고유의 특징값을 갖는 변수인 속성과 기능을 구현한 함수로 이루어져 있다.
class Person (var name:String, var birthYear:Int)
fun main() {
var a = Person("강민혁", 2000) //인스턴스 생성
var b = Person("김현중", 1994)
var c = Person("홍길동", 1998)
//인스턴스를 사용하기 위해서 변수명 뒤에 참조 연산자로 속성명을 사용한다.
println("안녕하세요, ${a.birthYear}년생 ${a.name}입니다")
}
class Person (var name:String, var birthYear:Int)
코틀린에서는 클래스에 생성자를 자동으로 생성해주기 때문에 굳이 작성할 필요가 없다.
코틀린에서 생성자를 생성하는 코드가 없는데,
이것은 자바가상머신(JVM) 위에서 동작을 시켰을때 그때 자바가상머신(JVM) 에서 코틀린 코드를 해석하며 자동으로 만들어 주기 때문이다.
편리한 기능
상속
상속이 필요한 경우는 크게 두가지로 나뉜다고 할 수 있다.
이미 존재하는 클래스를 확장하여 새로운 속성이나 함수를 추가한 클래스를 만들어야 할 때
여러개의 클래스를 만들었는데 그 중 공통점을 뽑아 코드관리를 할 때
Kotlin은 상속 금지가 기본 값이다.
상속의 조건은 두가지가 있다.
1. 서브 클래스는 수퍼 클래스에 존재하는 속성과 '같은 이름'의 속성을 가질 수 없음.
2. 서브 클래스가 생성될 때는 반드시 수퍼클래스의 생성자까지 호출되어야 함.
'Android > Kotlin' 카테고리의 다른 글
Kotlin 공부기록 - 1 (0) | 2023.10.10 |
---|