코틀린30 [코틀린] 인터페이스 (Interface) 인터페이스 (Interface) 일종의 구현 약속으로 인터페이스를 구현하는 클래스들은 인터페이스가 가지고 있는 내용을 구현해야함 클래스의 형태를 규정한다. 추상 클래스와는 다르게 추상 프로퍼티만 가질 수 있다. 자바와는 다르게 코틀린의 인터페이스에는 메서드에 구현 내용을 넣을 수 있다. 인터페이스 자체로는 객체 생성 x 인터페이스 접근 코틀린에선 다중 상속을 지원하지 않음 but 여러 개의 인터페이스를 구현하는 것은 가능 그렇기 때문에 여러 개 인터페이스에 중복되는 메서드나 프로퍼티에 접근 시도할 때는 앵글 브리켓을 사용하여 접근하려는 인터페이스를 명시해줌 open class TestParent{ //open class는 open 사용안하면 오버라이드 x (final로 설정됨) open fun int.. 2020. 9. 18. [코틀린] inner 클래스 inner 클래스 특정 클래스 안에 선언된 클래스 앞에 inner 키워드를 붙이지 않으면 외부에서 접근 못함 바깥 클래스 접근법 : 바깥클래스명().메소드명() 바깥 클래스의 상위클래스 접근법 : Super@바깥클래스명().메소드명() open class TestParent { fun introduce() { println("it's test parent") } } class Test : TestParent() { fun introduce() { println("it's test") } inner class TestChild{ fun introduce() { println("it's test child") Test().introduce() //inner 클래스(TestChild)에서 바깥 클래스(Test.. 2020. 9. 18. [코틀린] 상속 상속 기본적으로 코틀린의 모든 클래스는 Any 클래스의 하위 클래스가 되며, 상위 클래스를 따로 명시하지 않으면 Any클래스를 상속받게 됨. 코틀린에서는 상속 가능한 클래스(상위 클래스)를 선언할 때 open이라는 키워드를 사용한다. 자바에서는 final 키워드를 사용하지 않는 이상 기본적으로 모두 상속 가능한 클래스이다. open class Person { //묵시적으로 Any로부터 상속된다. } class Student : Person() { //기반 클래스로부터 상속됨, 다른 클래스로 상속 불가 } 다형성 메소드들이 같은 이름을 사용하지만 매개변수가 다르거나 구현 내용이 달라서 다양한 기능을 수행할 수 있게 하는 것 1. 오버로딩 (Overloading) - 동일 클래스의 같은 이름의 메소드를 .. 2020. 9. 18. [코틀린] break와 continue에 라벨 사용 break,cotinue 에 라벨 사용 여러 반복문, 조건문을 중첩해서 사용하는 경우 라벨링을 통해서 break, continue문 사용할 때 어느 곳으로 향할지 알릴 수 있다. first@ for(i in 1..10) { println("처음") second@ for(j in 1..10) { println(j) break@first } } //결과 : 처음 1 first@ 라벨이 붙은 바깥 반복문이 멈춘다. continue도 마찬가지로 사용 ( first 라벨이 붙은 반복문이 해당 턴을 넘기고 진행한다) first@ for(i in 1..10) { println("처음") second@ for(j in 1..10) { println(j) break@second } } /*결과 : 처음 1 처음 1 처음.. 2020. 9. 18. 이전 1 ··· 3 4 5 6 7 8 다음