반응형
코틀린 변수 및 자료형 - val, var
val num:Int = 1 //val은 값 변경불가, 읽기전용
var tempNum:Int =24 //var은 값 변경가능
//num+=1 val로 선언했기에 값 변경불가
tempNum+=1
val bNum =1000000 //정수, 값을 보고 자료형 추론
val bNum2 = 1000_000 //가독성을 위해 사용가능, bNum과 bNum2는 같은 값을 가짐
val dNum = 3.14 //실수
val check = true //논리
println(num) //1 출력
println(tempNum) //25출력
println(bNum) //1000000 출력
println(bNum2) //1000000 출력
println(dNum) //3.14 출력
println(check) //true 출력
배열 및 리스트 - Array, List, MutableList
var arr:Array<Int> = arrayOf(1,2,3) //Int 배열선언, 배열은 연속된 메모리 공간 사용
print(arr[0]) //배열 값 출력
print(arr[1])
print(arr[2])
val tempList:List<Int> = listOf(1,2,3) //Int list 선언, 리스트는 불연속적인 메모리 공간 사용, list는 불변형
var temp2 = mutableListOf<Int>() //Int mutablelist선언, mutablelist는 가변형
temp2.add(1) //temp2에 1을 add
temp2.add(2)
NULL - ?
var t1:String? =null
//var t2:String = null null값 허용을 위해서는 ?를 추가해야한다
함수 - func
fun func(msg:Int) = if(msg!=0) println("Hello") else println("World") //func 함수선언, 매개변수로 Int를 받고
//Int값이 0이 아니라면 Hello를 출력하고 0이라면 World를 출력
fun func2(a: Int, b:Int):Int //func2함수 선언, 매개변수로 Int자료형 a,b를 받고 a와 b의 합을 반환
{
return a+b
}
//함수를 선언할때 반환형이 없을 경우 Unit를 사용
func(1) //Hello 출력
func(0) //World 출력
var fNum2 = func2(20,30)
println(fNum2) //50 출력
줄바꿈
print('\n') //줄바꿈
println() //줄바꿈
반복문 - for
for(i in 1 until 100) //1부터 99까지 출력하는 반복문
print("$i ")
for(i in 'a' .. 'z') //a부터 z까지 출력하는 반복문
print("$i ")
for(i in 1..100 step 3) //1부터 100까지 3씩 증가하는 반복문
print("$i ")
제어문 - When
var wNum = 1
when(wNum) //제어문 when , 다른 언어들의 switch문과 동일하며, wNum값에 따라 결과를 출력
{
1 -> print("wNum은 1")
2 -> print("wNum은 2")
}
클래스 - Class, Init, open
class Car(var carName : String) //Car 클래스 선언
{
init {
println("car선언") //init은 클래스의 인스턴스가 만들어질때 호출되는 함수
}
fun nameFun()
{
println("Car: $carName")
}
}
val tempCar = Car("abc") //Car 클래스의 인스턴스 생성
tempCar.nameFun() //nameFun 함수 호출, Car: abc 출력
//클래스 상속을 위해서는 부모클래스의 선언을할때 open 을 추가해야한다. ex) open class Car(){}
lateinit
lateinit var tempStr: String //lateinit를 사용하면 초기화하지않고 변수만 선언가능
반응형
'Programming > Android' 카테고리의 다른 글
안드로이드 스튜디오 코드 정렬 단축키 (0) | 2023.08.27 |
---|---|
안드로이드 Jetpack 개념 (0) | 2022.05.15 |
안드로이드 애니메이션 (Drawable, Property, MotionLayout) (0) | 2021.09.23 |
안드로이드 알림기능 관련내용 (알림,알림채널) (0) | 2021.09.14 |
안드로이드 커스텀뷰 기초 (onDraw, Invalidate, Canvas) (0) | 2021.09.08 |