분류 전체보기556 Kotlin] 17. 오버라이딩 자바에는 매서드 오버라이딩이라는 기술을 지원한다. 서브클래스에서 같은 매서드 명을 가지고 있을 때, @override라는 어노테이션을 붙여주면 슈퍼클래서의 매서드를 무시하고 서브클래스의 매서드를 실행하는 기술이다. 코틀린에서도 오버라이딩을 할 수 있다. fun main(args: Array): Unit { AAA().func() BBB().func() } open class AAA { open fun func() = println("AAA") } class BBB : AAA() { override fun func(){ super.func() println("BBB") } } 함수도 선언할때 무조건 final이 붙기 때문에, 오버라이딩을 기본적으로 허용하지 않는다. 허용하기 위해서는 반드시 open 키워드.. 2020. 12. 9. Kotlin] 16. 상속 자바는 기본 클래스 선언이 default 이다. 그러나 코틀린은 기본적으로 final이다. 그렇기 때문에 기본적으로 상속이 허용되지 않는다. 그러나 상속을 할 수 있는 방법이 있다. 상속받을 모체 클래스에 open 키워드를 붙이면 된다. fun main(args: Array): Unit { val person = Person("홍길동", 32) val student = Student("김미영", 26, 20201209) } open class Person(var name: String, var age: Int) class Student(name: String, age: Int, var id: Int) : Person(name, age) Student 옆에 : Person으로 마치 함수나 변수 타입을 선언.. 2020. 12. 9. Kotlin] 15. 멤버함수의 중위 표기법(infix) fun main(args: Array): Unit { val pt = Point(3,6) from Point(1,1) println(pt.x) println(pt.y) } class Point(var x :Int, var y : Int){ infix fun from(base : Point) : Point { return Point(x-base.x, y-base.y) } } (근데 이걸 잘 쓰나?) 코틀린은 함수를 연산자처럼 연결할 수도 있다. 함수 + 함수처럼.. class 함수를 보면 fun 키워드 옆에 infix라는 키워드가 있다. 함수의 매개변수가 하나뿐이라면 이걸 붙이면 되는데, 원래 클래스 내의 함수를 호출하려면 Point(3,6).from(Point(1,1))로 호출할 것을 간단히 호출할 수 .. 2020. 12. 8. Kotlin] 14. in 자바는 객체 속에 무언가가 포함되어 있는것을 찾을때, 특히 문자열 속의 문자, 혹은 문자열을 찾을 때 어떻게 하는가? 예를 들어, Kotlin 속에 o가 포함되어 있는지 없는지 찾으려고 한다. 그렇다면 자바는 "Kotlin".contain("o"); 라는 함수를 이용한다. 그러나, 코틀린은 훨씬 직관적인 함수로 이것을 비교한다. 예시를 보면 바로 납득할 수 있다. fun main(args: Array): Unit { println('o' in "Kotlin") println('z' in "Kotlin") println('o' !in "Kotlin") } in이다. 정말 직관적이지 않을 수 없다. 안에 있나 없나, 얼마나 직관적이야. 결과 : true false false 심지어 비교연산자처럼 !도 먹는다. 2020. 12. 7. 이전 1 ··· 72 73 74 75 76 77 78 ··· 139 다음 반응형