상단의 No device > APL > Create Virtual Device > Phone > Pixel 3 XL
개발자 모드로 변경 후 노트북과 연결 (USB 디버깅)
var num = 10
var hello = "hello"
var point = 3.4
var number1: Int = 20
var hello1: String = "Hello"
var point1: Double = 3.4
: input에 따른 output을 배출하는 것
fun 함수명(변수명:타입, 변수명:타입, ... ) : 반환형 {
함수내용
return 반환값
}
fun plus(first: Int, second: Int): Int {
println(first)
println(second)
val result: Int = first + second
println(result)
return result
}
fun plusFive(first: Int, second: Int = 5): Int {
val result: Int = first + second
return result
}
fun printPlus(first: Int, second: Int): Unit {
val result: Int = first + second
println(result)
}
fun plusShort(first: Int, second: Int) = first + second
fun plusMany(vararg numbers: Int) {
for (number in numbers) {
println(number)
}
}
: 프로그램을 실행할 때 가장 먼저 돌아가는 함수 - 필수
: +, -, *, /(몫 구하기), %(나머지 구하기)
: =
: +=, -=, *=, /=, %=
: ++, --
: >, >=, <, <=, ==, !=
: &&, ||, !
: JAVA 및 C와 유사
: C의 switch와 유사
-> 변수의 값이 무엇인지에 따라 다른 명령을 수행하는 것
when (value) {
null -> println("value is null")
else -> println("value is not null")
}
// value의 값이 null 인지 아닌지를 판단
when (value) {
in 60..70 -> {
println("value is in 60-70")
}
in 70..80 -> {
println("value is in 70-80")
}
in 80..90 -> {
println("value is in 80-90")
}
}
// 값이 어느 구간 내에 있는지를 판단
var number: Int = 10
var group = arrayOf<Int>(1, 2, 3, 4, 5)
println(group1 is Array)
var number = 10
var group = arrayOf(1, 2, 3.5, "Hello")
//index를 사용해 0번 index의 값을 가져오기
val test = group.get(0)
//get 메소드를 사용해 0번 index의 값을 가져오기
val test = group[0]
//index를 사용해 0번 index의 값을 100으로 바꾸기
group[0] = 100
//set 메소드를 사용해 0번 index의 값을 100으로 바꾸기
group.set(0, 100)
: 기본적인 개념은 모두 JAVA와 유사
-> 변경이 불가능한 Immutable Collection이 기본이며, 변경이 가능한 Mutable Collection은 따로 존재 (JAVA의 Collection은 mutable 형태)
: 중복 허용, 순서O
val numberList = listOf<Int>(1, 2, 3, 3)
println(numberList)
println(numberList.get(0))
println(numberList[0])
//Immutable 형태이므로 get만 가능
val mNumberList = mutableListOf<Int>(1, 2, 3)
mNumberList.add(3, 4)
println()
println(mNumberList)
: 중복 허용X, 순서X
val numberSet = setOf<Int>(1, 2, 3, 3, 3)
println()
numberSet.forEach {
println(it)
}
val mNumberSet = mutableSetOf<Int>(1, 2, 3, 4, 4, 4)
mNumberSet.add(10)
println(mNumberSet)
: Key와 Value의 쌍으로 관리
val numberMap = mapOf<String, Int>("one" to 1, "two" to 2)
println()
println(numberMap.get("one"))
val mNumberMap = mutableMapOf<String, Int>("one" to 1)
mNumberMap.put("two", 2)
println(mNumberMap)
: 주로 for문 사용
: 특정 list의 모든 값에 따라 같은 명령문 반복
val a = mutableListOf<Int>(1, 2, 3, 4, 5, 6, 7, 8, 9)
a.forEach { item ->
//현재 반복문이 돌고있는 a의 값을 item이라는 변수에 넣겠다는 의미
println(item)
}
: 특정 list를 돌면서 index의 값까지 받는 경우
val a = mutableListOf<Int>(1, 2, 3, 4, 5, 6, 7, 8, 9)
a.forEachIndexed { index, item ->
println("index : " + index + " value : " + item)
}
for (변수 in 시작 until 끝 step (건너뛰는 단계)){}
+++ (step은 생략 가능)
//한 단계씩 올라갈 때
for (i in 0 until a.size) {
println(a.get(i))
}
//step 사용해 두 단계씩 올라갈 때
for (i in 0 until a.size step (2)) {
println(a.get(i))
}
for (변수 in 끝 downTo (시작) step (건너뛰는 단계)){}
+++ 끝에서부터 내려올 때
//한 단계씩 내려올 때
for (i in a.size - 1 downTo (0)) {
// 8 부터 0 까지 반복
println(a.get(i))
}
//step 사용해 두 단계씩 내려올 때
for (i in a.size - 1 downTo (0) step (2)) {
println(a.get(i))
}
for (변수 in 시작..끝){}
for (i in 0..a.size) {
// .. -> 마지막을 포함한다
println(i)
}
: break를 통해 제어
: JAVA에서와 유사 - 객체지향 프로그래밍
class Car constructor(engine: String, body: String) {
var door: String = ""
constructor(engine: String, body: String, door: String) : this(engine, body) {
this.door = door
}
}
class Car1 {
var engine: String
var body: String
var door: String
constructor(engine: String, body: String, door: String) {
this.engine = engine
this.body = body
this.door = door
}
}
class Car3 {
var engine: String
var body: String
constructor(engine: String, body: String) {
this.engine = engine
this.body = body
}
init {
// 초기셋팅을 할 때 유용하다
println("RunableCar2가 만들어 졌습니다")
}
fun ride() {
println("탑승 하였습니다")
}
fun drive() {
println("달립니다 !")
}
fun navi(destination: String) {
println("$destination 으로 목적지가 설정되었습니다")
}
}
class TestClass() {
fun test(a: Int) {
println("up")
}
fun test(a: Int, b: Int) {
println("down")
}
}