본문 바로가기

두두의 IT

[Kotlin] Modifiers

728x90

선언 앞이나 변수 앞에 붙이는 언어의 예약어

public / protected / private / internal -> 가시성 제한자
expect / actual -> 코틀린 멀티플랫폼의 예약어, 사용할 일 X
final / open / abstract / sealed / const -> 상속의 제한이나 추상 클래스, 봉인 클래스, 상수를 정의
external -> JNI의 함수여서 C나 C++를 호출하는 함수를 의미
override -> 오버라이딩 지시자
lateinit -> 변수 지연 초기화 지시자
tailrec -> 재귀함수를 반복함수로 최적화 시켜줌
vararg -> 함수에서 길이를 모르는 인자를 배열로 받게해줌
suspend -> 코루틴 suspend 함수
inner -> Nested Class의 귀속화
enum / annotation / fun // as a modifier in `fun interface` -> enum 클래스, 어노테이션 클래스, 함수형 인터페이스를 정의
companion -> 컴패니언 객체
inline -> 인라인 함수
infix -> 함수를 infix 호출을 할 수 있게해주는 지시자
operator -> 연산자 오버로딩
data -> 데이터 클래스

https://jyj98020.tistory.com/299

 

[OOP] 접근지정자(Access Specifier)

접근지정자(Access Specifier) : 클래스나 멤버들을 다른 클래스에서 접근해도 되는지 여부를 선언하는 것 public 패키지와 상관없이 모든 클래스들이 접근 가능한 것 슈퍼 클래스의 public 멤버 : 서브

jyj98020.tistory.com

https://jyj98020.tistory.com/297

 

[Java, Kotlin] final / open

final 해당 클래스의 상속을 금지시킴 [Java] final Class : 더 이상 상속되지 않음. final이 없으면 모두 다른 클래스에서 상속 가능 final Method : 더 이상 오버라이딩 될 수 없음 final Field : 상수로서, 실..

jyj98020.tistory.com

https://jyj98020.tistory.com/301?category=1015393 

 

[OOP] 추상클래스와 인터페이스

추상 클래스(Abstract Class) 추상 메서드를 가지며, Abstract로 선언된 클래스. 최소 한 개의 추상메소드를 포함하는 경우 반드시 추상 클래스로 선언해야 함 추상 메소드가 하나라도 없을 때 Abstract

jyj98020.tistory.com

https://jyj98020.tistory.com/314?category=1015393 

 

[Kotlin] 가변인자 vararg(Variable number of arguments)

가변 인자를 사용하면 함수를 호출할 때 인자 개수를 유동적으로 지정할 수 있다. fun sum(vararg num: Int) = num.sum() fun main(args: Array ) { val n1 = sum(1) val n2 = sum(1, 2, 3, 4, 5) println(n1) //..

jyj98020.tistory.com

https://jyj98020.tistory.com/298?category=1015393 

 

[Kotlin] enum class

enum 열거형 클래스 쓰는 이유 : 코드 간결, 가독성, 인스턴스 생성과 상속 방지, 상수값의 타입 안정성 보장 열거형 클래스는 인터페이스를 구현할 수 있습니다 (하지만 클래스에서 파생될 수 없

jyj98020.tistory.com

https://jyj98020.tistory.com/300?category=1015393 

 

[Kotlin] annotation class

[Annotation] 메타데이터 ( 부가기능 )을 코드에 비침투적으로 추가할 수 있는 수단 멤버 변수, 함수, 클래스 등 다양한 곳에 위치 시킬 수 있으며 또한 다양한 기능을 가진 다양한 어노테이션이 있

jyj98020.tistory.com

https://jyj98020.tistory.com/310?category=1015393 

https://jyj98020.tistory.com/313?category=1015393 

 

[Kotlin] Inline 함수

1. 람다식을 사용했을 때 무의미한 객체 생성을 예방 //1. Kotlin fun doSomethingElse(lambda: () -> Unit) { println("Doing something else") lambda() } //1. Java public static final void doSomethingElse(..

jyj98020.tistory.com

https://jyj98020.tistory.com/315?category=1015393 

 

[Kotlin] Infix 함수

Infix 함수 두개의 변수 가운데 오는 함수 to, and 등 to : 양 옆의 객체들로 Pair 객체를 만들어줌 Infix 함수인 to를 사용한 코드를 보면 key가 value에 매핑된다는 것을 명확히 알 수 있습니다. val map1 = m

jyj98020.tistory.com

https://jyj98020.tistory.com/302?category=1015393 

 

[Kotlin] operator

연산자 오버로딩을 구현하기 위해서는 operator 라는 키워드를 이용합니다. 그리고 코틀린에 이미 정해져 있는 함수를 새롭게 정의하면 됩니다. public final operator fun next(): kotlin.Boolean { }

jyj98020.tistory.com

https://jyj98020.tistory.com/312?category=1015393 

 

'두두의 IT' 카테고리의 다른 글

[Kotlin] Inline 함수  (0) 2022.04.12
[Kotlin] data Class  (0) 2022.04.12
객체지향 프로그래밍이란?  (0) 2022.04.12
[Kotlin] 개념, Java와의 호환, 장점, 활용 방법, 만든 이유  (0) 2022.04.11
[Kotlin] in/out  (0) 2022.04.11