목록BackEnd/코틀린 (8)
코진남

코틀린 by 키워드 개발하다 보면 하위 클래스가 상위 클래스를 상속해서 상위 클래스 메소드를 오버라이드를 하는 경우가 많습니다. 이러한 상황에서 유지보수를 하다보면 상위 클래스가 변경이되는 경우 하위 클래스가 상위 클래스에 의존하고 있던 상황이 변경되면서 예기치 않은 오류가 발생합니다. 그래서 코틀린에서는 기본적으로 클래스는 final 입니다. 상속가능한 클래스는 open 을 해서 상속이 가능하다는 것을 알려줍니다. 상위 클래스 변경 시 하위 클래스에 영향을 줄 수 있다는 것을 인지시켜 줄수 있습니다. by - 위임 상속을 허용하지 않는 클래스에 새로운 기능을 추가할때는 위임을 사용할 수 있습니다. 위임을 사용하면 상속하지 않고 기존 기능을 그대로 사용하면서 새로운 기능을 추가할 수 있습니다. 코틀린에서..

내부 클래스와 중첩된 클래스: 기본적으로 중첩으로 Kotlin식 문법: 클래스, 객체, 인터페이스 -1에서 작성했던 코드처럼 kotlin도 class 내부에 class를 작성할 수 있다. 다만 kotlin의 경우 java와 다르게 inner를 작성하지 않으면 기본적으로 Nested(중첩)클래스가 된다는 사실을 잊지말자. 여기서 중첩과 내부 클래스의 특징은 java와 같다. inner 클래스의 경우 클래스가 생성되면서 같이 생성되기 때문에 외부 클래스의 field나 method, property에 접근할 수 있으나, 중첩 클래스는 외부 클래스가 생성되어도 추가로 instance나 클래스를 사용하지 않는 이상 생성되지 않기 때문에 외부 클래스의 정보를 이용할 수 없다. 즉 중첩 클래스는 명시적으로 요청하지 ..

인터페이스 코틀린에서는 자바와는달리 override 변경자를 꼭 사용해야 한다. override 변경자는 실수로 상위 클래스의 메서드를 오버라이드하는 경우를 방지해준다. 인터페이스 메서드도 디폴트 구현을 제공할 수 있따. 그런 경우 메서드 앞에 default를 붙여야하는 자바와는 달리 코틀린에서 특별한 키워드로 꾸밀 필요없다. 그냥 메서드 본문을 메서드 시그니처 뒤에 추가하면 된다. interface Clickable { fun click() fun showOff() = println("I'm clickable!") } 이 인터페이스를 구현하는 클래스는 clickq에 대한 구현을 제공해야 한다. 반면 showOff 메서드의 경우 새로운 동작을 정의할 수 있고, 그냥 정의를 생략해서 디폴트 구현을 사용할 ..
타입 추론 변수나 함수들을 선언할 때나 연산이 이루어 질때 자료형을 코드에 명시하지 않아도 코틀린이 자동으로 자료형을 추론해주는 기능 이미 2편, 3편에서 타입추론을 사용해 보았다. 이는 변수가 선언될 때 할당된 값의 형태로 해당 변수가 어떤 자료형을 가지는지 추론이 가능하기 때문입니다. 만약 var b = 1234 숫자값을 할당한다면 자동으로 Int 로 인식하겠죠? fun main() { String을 생략 var a:String = " 문자열 " var b = " 문자열 " :Array 생략 var intArr:Array = arrayOf(1, 2, 3, 4, 5) var intArr = arrayOf(1, 2, 3, 4, 5) { 함수 함수는 특정한 동작을 하거나, 원하는 결과값을 연산하는데 사용하..
형변환 하나의 변수에 지정된 자료형을 호환되는 다른 자료형으로 변경하는 기능 기본 자료형은 자료형 간의 형변환을 지원하기 위해 형변환 함수들을 제공하고있다. toByte() : Byte로 변환 toShort() : Short로 변환 toInt() : Int로 변환 toLong() : Long으로 변환 toFloat() : Float으로 변환 toDouble() : Double로 변환 toChar() : Char로 변환 String의 형변환은 Java와 동일 명시적 형변환 변환될 자료형은 개발자가 직접 지정한다는 의미 반드시 Int형 변수의 toLong() 함수를 호출하여 Long값으로 변환된 값을 반환받아 Long변수에 할당 해줘야한다. fun main() { val a :Int = 12345 var b..

클래스 이름은 파스칼 표기법 ex) ClassName 함수나 변수 이름은 카멜 표기법 ex) functionName 코틀린 변수 선언 방법 var , val 차이 val : 선언시에만 초기화 가능 중간에 값을 변경할 수 없음 runtime시 변경되지 말아야할 값은 val로 선언하는게 좋다. 초기화 후에는 값을 변경이 불가능 var : 일반적으로 통용되는 변수 언제든지 읽기 쓰기가 가능 기존언어들과 코틀린의 차이점 a라는 변수가 반드시 초기화 되어야 한다는 메세지가 나온다. 기존 언어들은 변수를 선언 후 초기화하지 않으면 기본 값으로 초기화 되거나 null 값이 들어오게된다. 코틀린은 기본 변수에서 null을 허용하지 않으면 변수에 값을 할당하지 않은채로 사용하게되면 문법 에러를 표시하고 컴파일을 막아줌으..