본문 바로가기
반응형

코틀린10

7장. 연산자 오버로딩과 기타 관례 7.1 산술 연산자 오버로딩 7.1.1 이항 산술 연산 오버로딩 data class Point(val x: Int, val y: Int) { operator fun plus(other: Point): Point { return Point(x + other.x, y + other.y) } } val p1 = Point(10, 20) val p2 = Point(30, 40) println(p1 + p2) // --> p1.plus(p2) // Point(x=40, y=60) operator keyword: 연산자 오버로딩 함수 앞에 필수, 관례를 따르는 함수임을 명시 키워드 없는 경우 사용시 오류 발생 operator fun Point.plus(other: Point): Point { return Point.. 2021. 12. 14.
6장. 코틀린 타입 시스템 6장. 코틀린 타입 시스템 6.1 널 가능성 널 가능성은 NullPointerException를 피할 수 있게 돕기 위한 코틀린 타입 시스템의 특성. 6.1.1 널이 될 수 없는 타입 널이 될 수 있는 타입은 프로그램 안의 프로퍼티나 변수에 null을 허용하게 만드는 방법이다. 널이 인자로 들어올 수 없다면 코틀린에서는 다음과 같이 함수를 정의할 수 있다. fun strLen(s: String) = s.length 이 함수가 널과 문자열을 인자로 받을 수 있게 하려면 타입 이름 뒤에 물음표(?)를 명시해야 한다. fun strLenSafe(s: String?) = s.length 물음표가 없는 타입은 그 변수가 null 참조를 저장할 수 없다는 뜻이다. 따라서 모든 타입은 기본적으로 널이 될 수 없는 타.. 2021. 12. 13.
코틀린 스터디 - 4장.클래스, 객체, 인터페이스 내용 클래스, 인터페이스 인터페이스에 추상 프로퍼티 선언 가능 기본 접근자 final + public 중첩 클래스는 기본적으로 내부 클래스 아님 뻔하지 않은 생성자, 프로퍼티 짧은 주 생성자 구문으로도 거의 모든 경우 커버 가능 데이터 클래스 클래스를 data로 선언, 컴파일러가 일부 표준 메서드 자동생성 클래스 위임 위임을 처리하기 위한 준비 메소드 자동생성 object 키워드 사용 싱글톤 클래스, 동반 객체, 객체 식(자바의 무명 클래스) 표현 시 사용 4.1 클래스 계층 정의 4.1.1 코틀린 인터페이스 추상메서드 , 구현이 있는 메소드 정의 가능 상태(필드) 정의 불가 - 자바에서는 extends와 implements 키워드를 사용, 코틀린에서는 클래스 이름 뒤에 `콜론(:)` 사용 - 자바와 마.. 2021. 12. 8.
코틀린 스터디 - 3장.함수의 정의와 호출 3.1 코틀린에서 컬렉션 만들기 val set = hashSetOf(1, 7, 53) val list = arrayListOf(1, 7, 53) val map = hashMapOf(1 to "one", 7 to "seven", 53 to "fifty-three") >>> println (set.javaClass) class java.util.HashSet >>> println (list.javaClass) class java.util.ArrayList >>> println (map.javaClass) class java.util.HashMap 코틀린이 새로운 컬렉션을 사용하지 않고 자바 컬렉션 기능을 사용한다. 자바 개발자들이 기존 컬렉션을 활용할 수 있다는 뜻이다. 자바 코드와 코틀린 코드 간의 상호작.. 2021. 12. 6.
반응형