728x90
단항 연산자 / 산술 연산자
- 단항 연산자
- ++
- --
- 산술 연산자
- +
- -
- *
- /
- %
- 산술대입 연산자
- +=
- -=
- *=
- /=
- %=
비교 연산자와 동등성, 동일성
- 비교 연산자
- >
- <
- >=
- <=
- 코틀린은 자바와 다르게 객체를 비교할때, 비교 연산자를 사용하면 자동으로 compareTo를 호출해준다.
- 객체끼리 자동 호출되는 compareTo를 이용해 비교 연산자를 사용할 수 있다.
@Override
public int compareTo(@NotNull JavaMoney o) {
return Long.compare(this.amount, o.amount);
}
fun comparisonOperator(): Boolean {
val money1 = JavaMoney(1000L)
val money2 = JavaMoney(2000L)
return money1 > money2
}
- 동등성(Equality): 두 객체의 값이 같은가
- 코틀린: == ( 간접적으로 equals를 호출 )
- 자바: equals
- 동일성(Identity): 완전히 동일한 객체인가 ( 주소값이 같은가 )
- 코틀린: ===
- 자바: ==
논리 연산자 / 코틀린에 있는 특이한 연산자
- 논리 연산자
- 자바와 완전히 동일하고, 자바처럼 Lazy 연산을 수행한다.
- &&
- ||
- !
- in / !in
- 컬렉션이나 범위에 포함되어 있다. / 있지않다.
- a..b
- a부터 b까지의 범위 객체를 생성한다.
- a[i]
- a에서 특정 index i로 값을 가져온다.
- val str = "abc"
- println(str[2]) // c
- a[i] = b
- a의 특정 index i에 b를 넣는다.
연산자 오버로딩
- 코틀린에서는 객체마다 연산자를 직접 정의할 수 있다.
- 객체끼리의 연산자를 직접 정의할 수 있다.
public JavaMoney plus(JavaMoney other) {
return new JavaMoney(this.amount + other.amount);
}
public static void main(String[] args) {
JavaMoney money1 = new JavaMoney(1_000L);
JavaMoney money2 = new JavaMoney(2_000L);
System.out.println(money1.plus(money2));
}
// 4. 연산자 오버로딩
fun operatorOverloading() {
val money1 = JavaMoney(1000L)
val money2 = JavaMoney(2000L)
println(money1 + money2)
}
728x90
'Language > kotlin' 카테고리의 다른 글
반복문 다루기 (0) | 2023.05.18 |
---|---|
조건문 다루기 (0) | 2023.05.17 |
Type을 다루는 방법 (0) | 2023.05.17 |
null과 관련하여 (0) | 2023.05.16 |
변수 (0) | 2023.05.16 |