var : 일반적으로 통용되는 변수. 언제든지 읽기 쓰기가 가능.
val : 선언시에만 초기화 가능. 중간에 값을 변경할 수 없음.
코틀린은 변수가 초기화 되어있지 않을 경우 컴파일 에러 발생.
? 이용하여 nullable 변수로 선언 가능.
fun main() {
var intValue:Int = 1234
var longValue:Long = 1234L
var intValueByHex:Int = 0x1af
var intValueByBin:Int = 0b10110110
var doubleValue:Double = 123.5
var doubleValueWithExp:Double = 123.5e10
var floatValue:Float = 123.5f
}
문자 하나 표현시 2byte 사용.
단일 표현식 지원, 단일 표현식 사용하면 리턴 생략 가능.
어떤 자료형과도 호환되는 자료형 타입. 코틀린의 최상위 자료형.
fun main() {
doWhen(1)
doWhen("Dimo")
}
fun doWhen(a: Any) {
when (a) {
1 -> println("정수 1입니다")
"Dimo" -> println("Dimo입니다")
is Long -> println("Long 타입입니다")
!is String -> println("String 타입이 아닙니다")
else -> println("어떤 조건도 만족하지 않습니다")
}
}
var res = when (a) {
1 -> "정수 1입니다"
"Dimo" -> "Dimo입니다"
is Long -> "Long 타입입니다"
!is String -> "String 타입이 아닙니다"
else -> "어떤 조건도 만족하지 않습니다"
}
println(res)
레이블 break. continue
$ 사용시 변수값 출력
데이터형
멤버 함수
기본 생성자 : 멤버 변수 초기화.
보조 생성자 : 보조 생성자는 기본 생성자를 호출하여 변수를 초기화 해야 한다.
EX)
open : 상속 키워드(looks like c++ virtual)
서브 클래스는 슈퍼 클래스의 생성자를 호출해야 한다.
override
추상 클래스는 추상 함수를 가지고 있는 클래스.
abstract
추상 클래스와 같지만 단 하나가 다르다. 추상 클래스는 생성자를 가질 수 없다.
인터페이스는
따라서 인터페이스는 별도의 open, abstract 키워드가 없어도 모든 함수를 재정의 가능.
한번에 여러 인터페이스 상속 가능.
import com.youtube.dimo.base
dog.run()
프로젝트 : 개발에 필요한 파일들의 물리적인 단위.
프로젝트는 모듈로 구성되어 있다.
모듈은 여러 소스 파일, 설정 파일, 리소스, 디렉터리 ... 등으로 이루어져 있다.
소스 코드의 '소속'을 지정하기 위한 논리적인 단위.
필반적인 패키지 작명
패키지 지정
import
kotlin에서는 함수 뿐만 아니라 클래스, 패키지도 스코프의 일종으로 취급한다.
접근 제한자는 스코프에서 사용 가능 하다.
변수, 함수, 클래스 사용시 맨 앞에 붙여서 사용.
패키지 스코프
클래스 스코프