본문 바로가기

Android/Kotlin5

[Kotlin/Java] instanceof를 지양하자 Java에서 instanceof 연산자는 객체가 특정 클래스의 instance인지를 확인하는데 사용된다. 아래처럼 실제 instance type을 알고 싶을 때에 사용할 수 있다. class Parent{ } class Child extends Parent{ } Parent object = new Child(); if (object instanceof Child){ // object가 Child 인스턴스 형태인가? } 실제로 프로그래밍 할 때 사용하면 정말 편하고 유용하지만 우리는 instanceof를 지양해야한다. 그 이유에 대해서 알아보자. 다형성 위배 우리는 다형성을 사용하여 같은 코드지만 실제 instance에 따라서 다르게 동작하도록 작성할 수 있다. 그리고 이를 위해서 변수 타입을 interf.. 2023. 5. 5.
3. 반복문, 조건문 for 코틀린에서는 범위 지정자가 in과 .. , step, downTo의 조합으로 표현되어진다. for(i in 0..9) // 0~9까지 { } for(i in 9 downTo 0) // 9~0까지 { } for(i in 0..9 step 2) // 0,2,4,6,8 { } for(i in 10 downTo 0 step 2) // 10,8,6,4,2,0 { } for(i in 0..data.size-1) { } if 기존의 자바와 동일하다. if (a0){ print(x) x-- } do{ print(x) x-- }while(x>1) when 기존 언어들의 Switch의 확장버전이다. 코틀린에서는 Switch는 존재하지 안고 When을 사용한다. 기존 사용하던 case가 사라지고 '->'를 사용하고 .. 2018. 12. 31.
2. 함수 함수선언 코틀린에서는 fun이라는 키워드를 사용하여 함수를 선언한다. fun add(x:Int, y:Int):Int { return x+y } fun 다음에 바로 함수의 이름이 오고, 리턴 타입이 제일 뒤로 간다. 또한 리턴 타입을 정의하기 위해 ':'을 사용한다. 또한 함수를 더 간략하게 표시할 수 있다. fun add(x:Int, y:Int):Int = x+y 만약 리턴값이 매개변수의 형과 같다면 더 간략하게 표시할 수 있다. 또한 함수에 기본 값을 적어줄 수 있다. fun add(x:Int, y:Int = 10) = x+y 리턴값을 적어주지 않으면 기본적으로 Unit이 리턴되는 데 Unit은 Void와 동일하다. 변수타입 코틀린의 변수에는 여러가지 특징이 있다. 아래와 같다. 1. 코틀린의 변수 타.. 2018. 12. 31.
1. 클래스 constructor (생성자) 코틀린에서도 클래스에 constructor를 지정할 수 있다. 코틀린은 자바와는 달리 클래스 내부가 아니라 선언부에서 생성자를 만들 수 있다. class Person(name:String = "untitle") { constructor(name:String, age:Int):this(name) } 만약 생성자가 여러 개가 필요한 경우 클래스 내부에 constructor 키워드를 사용하여 정의할 수 있다. 기본 생성자 외에는 this를 꼭 호출해주어야한다. 선언부에서 생성자를 만드는 경우 constructor 키워드는 생략 가능하다. 또한 위 코드처럼 디폴트 생성자에 기본값을 넣어 줄 수도 있다. * 코틀린은 클래스를 생설할때 new 키워드를 사용하지 않는다. 생성자에 바디.. 2018. 12. 25.