Kotlin
![[Kotlin/Basic] 코틀린에서의 배열과 컬렉션](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbtrTfR%2FbtrLguCMSwB%2Fli2nx0Vq0SQJLbIXlQKWxK%2Fimg.png)
[Kotlin/Basic] 코틀린에서의 배열과 컬렉션
1. 배열 보통 배열보다는 리스트를 사용하곤한다. 그래도 간단하게 자바와 비교하며 문법을 체크해보자. val array = arrayOf(100, 200) //0부터 마지막 index까지 for문을 돌림 for(i in array.indices){ println("$i ${array[i]}") } //쉽게 추가할 수 있음 array.plus(200) //인덱스와 밸류를 한 번에 도출함 for((idx, value) in array.withIndex()){ println("${idx}, ${value}!") } 배열도 마찬가지로 가변인지 불변인지 판별하는 val, var을 적어주어야하고, arrayOf( )라고 적는다. 이를 for문을 통해 배열안에 있는 값들을 출력할 때에는 array.indices를 통..
![[Kotlin/Basic] 코틀린에서의 중첩클래스](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSvxaW%2FbtrKUvfOhdw%2F4JTsqp847ANTNeVIWKF3j1%2Fimg.png)
[Kotlin/Basic] 코틀린에서의 중첩클래스
1. 중첩 클래스의 종류 자바에서 static을 사용하는 중첩클래스와 사용하지 않은 클래스 두 가지로 나눌 수 있었다. static을 사용하는 중첩클래스라면 바깥 클래스를 바로 불러올 수 없었지만, static을 사용하지 않는 중첩클래스라면 바깥 클래스를 바로 불러올 수 있었다. 하지만 이를 권장하지 않고 있다. 왜냐하면, 내부 클래스는 숨겨진 외부 클래스 정보를 가지고 있어, 참조를 해지하지 못하는 경우 메모리 누수가 생길 수 있고, 이를 디버깅하기 어렵기 때문이다. 이렇기 때문에 따라서 자바에서 클래스 안에 클래스를 사용할 때에는 static을 사용하곤 했었다. 이제 그럼 코틀린에서의 중첩클래스와 내부 클래스를 어떻게 구현할 수 있는지 알아보자. 2. 코틀린의 중첩 클래스와 내부 클래스 class ..
![[Kotlin/Basic] 코틀린에서의 object 키워드](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWaPTv%2FbtrKSKLz8Cr%2FKWk1BRhWrDK4aOCqsW27DK%2Fimg.png)
[Kotlin/Basic] 코틀린에서의 object 키워드
1. static 함수와 변수 class Person private constructor( var name : String, var age : Int, ){ //static이 존재하지 않는다. //이는 Factory처럼 이름을 지어줄 수도 있고, 인터페이스를 구현해 줄 수도 있음 companion object Factory { //클래스와 동행하는 유일한 오브젝트라는 의미 //자바에서와의 static 변수와 함수처럼 활용된다. /* 정적으로 인스턴스끼리의 값을 공유 클래스가 인스턴스화 될 때 새로운 값이 복제되는 것이 아니라, */ private const val MIN_AGE = 1 //const 를 붙이면 컴파일 시에 변수가 할당된다. //런타임때 할당되는 것이 아니라, //진짜 상수에 붙이기 위한 ..
![[Kotlin/Basic] 코틀린에서의 클래스](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdLpWLv%2FbtrJn796sDJ%2Fo2wBqot46KkGDNiCNHFvkK%2Fimg.png)
[Kotlin/Basic] 코틀린에서의 클래스
1. 클래스와 프로퍼티 class Person constructor(name : String, age : Int){ val name = name var age = age } 자바에서는 클래스를 생성해주고 안에 Person( ) 하고 생성자를 만들어 주었는데, 코틀린에서는 클래스를 생성한 뒤 constructor를 통해 생성자를 적어준다. 이 때 자동으로 getter, setter가 만들어지고, 이 constructor는 생략이 가능하다!! val person = Person("ssongsik", 25) println(person.name) 또한, person.getName을 통해 데이터를 불러왔어야 했는데 위와 같이 person.name으로 이름을 불러올 수 있고, setter 또한, person.set..
[Kotlin/Basic] 코틀린에서의 예외처리
1. try - catch 코틀린에서도 자바와 동일하게 try-catch를 사용하여 예외처리를 하지만 다음과 같은 차이점이 있다. fun parseInt(str : String) : Int{ try{ return str.toInt() }catch(e : NumberFormatException){ throw IllegalArgumentException("주어진 ${str}는 숫자가 아닙니다") } //catch 문에서 타입이 뒤에 위치하고, new를 사용하지 않음 } 문자를 숫자형태로 반환해주는 방식인데, 만일 숫자형태로 바꿀 수 없는 문자가 오면 예외처리를 하는 코드이다. 자바와 다르게 catch문에서 타입이 뒤에 위치하고, new를 사용하지 않는 차이점이 존재한다. 또한, try catch도 if el..