본문 바로가기

전체 글533

[코틀린] 반복문 반복문 코틀린의 반복문은 자바와 동일하게 for문, while문, do~while문이 존재한다. for문 변수를 선언하고 조건식에 따라 변수 값을 반복해서 증감한다. 자바의 for문은 초기화식, 조건식, 증감식을 ;로 구분하여 사용하지만 코틀린에선 세미콜론을 사용하지 않는다. for(변수 in 컬렉션 또는 범위){ } 하행 반복의 경우 범위 연산자 .. 대신 downTo 키워드 사용 EX) for(a in 50 downTo 40) 2이상씩 증가 원할 때 step 키워드 사용 EX) for(a in 40..50 step 2) //2단계씩 증가 마지막 수를 제외하고 싶을 때는 untill 키워드 사용 EX) for(a in 40 until 50) //40~49까지 fun main() { for(a in 0... 2020. 9. 19.
[코틀린] 조건문 if문 기본적인 사용법은 기존 자바와 동일하다. 코틀린만의 몇 가지 활용법이 있다. 1. 블록 마지막 표현식을 반환한다. 마치 람다식처럼 블록의 마지막에 있는 표현식을 변수에 반환하여 할당할 수 있다. fun main() { var a = 50 var b = 60 var c = if (a > b) { println("select a") a//반환 } else { println("select b") b//반환 } println(c) /* 결과 select b 60 */ } 2. in 연산자, 범위 연산자 활용 in 연산자 : 포함 여부 확인 범위 연산자 (..) 변수 이름 in 시작값..마지막값 : 시작값, 마지막값을 포함하는 범위 fun main() { var a = 50 var b = 60 var c .. 2020. 9. 19.
[코틀린] 지연 초기화 (lateinit, lazy) lateinit - 클래스 선언 시 컴파일러에서 프로퍼티의 선언을 null로 허용하지 않지만 lateinit을 사용하면 허용됨 - 즉 바로 초기화 안해도 된다. var로 선언된 프로퍼티만 가능 getter, setter 사용 불가능 기존 class Test{ //선언과 동시에 초기화 var age : Int = 5 var name : String //init 블록을 이용한 초기화 init { name = "test" } } lateinit 사용 class Test{ lateinit var name : String fun testMethod() { name = "지연초기화" } } lazy - val로 선언한 객체도 지연 초기화 가능 - 람다식으로 구성되어 lazy 인스턴스 반환값을 가지는 함수 호출 시점.. 2020. 9. 18.
[코틀린] 프로퍼티의 접근 프로퍼티의 접근 자바의 필드에 접근하기 위해선 일일이 setter와 getter 접근 메소드를 구현해야함 코틀린의 프로퍼티는 변수 선언 시 접근 메소드가 이미 구현되어 있음 class Test{ val a = 10//상수로 선언되었기에 setter 사용 불가 var b = 11//getter, setter 둘 다 사용 가능 constructor() { b = a//정상적 처리 a = b//에러 발생 } } 기본 getter, setter 지정 (Custom getter, setter) field : 프로퍼티를 참조하는 변수 value : setter의 매개변수, 외부로부터 값을 가져옴 class Test{ val a = 10//상수로 선언되었기에 setter 사용 불가 get() = field var b.. 2020. 9. 18.