일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 오버로딩
- Python
- var
- 패널 교체
- go
- js
- 연산자
- 싱글 스레드
- 안드로이드
- 배열
- 리스트 뷰
- Overloading
- 자바
- javascript
- Android
- golang
- Kotlin
- 코틀린
- Array
- as?
- 파이썬
- adapter
- 자바스크립트
- HP
- Java
- 노트북
- node.js
- 함수
- ListView
- 노트북 추천
Archives
- Today
- Total
Bbaktaeho
코틀린(Kotlin) 9. 연산자와 연산자 오버로딩(3) 본문
반응형
인덱스 연산자)
배열은 인덱스를 사용해서 저장된 요소를 불러오거나 변경할 수 있다.
인덱스 연산자인 [] 는 get()과 set() 함수로 오버로딩되므로 우리가 정의하는 컬렉션 클래스에서도 get()과 set()을 정의하여 인덱스 연산자를 오버로딩할 수 있다. 여기서 get() 은 요소의 값을 읽고, set() 은 해당 요소를 변경한다.
invoke 연산자)
함수를 호출할 때는 이름에 괄호를 붙여 사용한다. 그런데 클래스의 인스턴스도 이런 방법으로 호출 가능하다.
이때는 괄호연산자->() 를 오버로딩한 invoke() 함수에 operator 키워드를 지정하여 해당 클래스에 정의하면 된다. 그리고 그 클래스의 인스턴스를 생성한 후 참조 변수에 괄호를 붙여서 호출하면 invoke() 함수가 실행된다.
예제를 보자.
1 2 3 4 5 6 7 8 9 | fun main(args: Array<String>) { val s = school("인천대학교") s(1,"임태호") //클래스의 인스턴스(객체) s로 괄호연산자를 사용 } class school(val schoolName: String) { operator fun invoke(grade: Int, name: String){ println(schoolName + " " + grade + "학년 " + name) } } | cs |
s(1,"임태호") 이 코드가 s.invoke(1,"임태호") 로 변환된다.
타입 확인 연산자)
객체의 타입을 확인할 때 코를린 언어에서는 is를 사용한다.(자바는 instanceof 연산자를 사용한다)
참고로 open 키워드는 해당 클래스가 상속 가능하도록 할 때 지정하는 키워드이다.
반응형
'프로그래밍 (Programming) > 코틀린 (Kotlin)' 카테고리의 다른 글
코틀린(Kotlin) 11. 반복문(for, while, do-while) (0) | 2019.01.31 |
---|---|
코틀린(Kotlin) 10. if와 when (0) | 2019.01.30 |
코틀린(Kotlin) 9. 연산자와 연산자 오버로딩(2) (0) | 2019.01.28 |
코틀린(Kotlin) 9. 연산자와 연산자 오버로딩(1) (0) | 2019.01.25 |
코틀린(Kotlin) 8. 입력과 출력 (0) | 2019.01.24 |