본문 바로가기
반응형

프로그래밍19

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.
코틀린 스터디 - 5장. 람다로 프로그래밍 코틀린 스터디 - 5장. 람다로 프로그래밍 다루는 내용 람다란 기본적으로 다른 함수에 넘길 수 있는 작은 코드 조각을 뜻한다. 람다 식과 멤버 참조 함수형 스타일로 컬렉션 다루기 시퀀스: 지연 커렉션 연산 자바 함수형 인터페이스를 코틀린에서 사용 수신 객체 지정 람다 사용 5.1 람다식과 멤버 참조 5.1.1 람다 소개: 코드 블록을 함수 인자로 넘기기 람다 식을 사용하면 함수를 선언할 필요가 없고 코드 블록을 직접 함수의 인자로 전달할 수 있다. 자바의 경우 // 무명 내부클래스로 리스너 구현하기 button.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { /* 클릭 시 수행할 동작 */ } });.. 2021. 12. 10.
코틀린 스터디 - 4장.클래스, 객체, 인터페이스 내용 클래스, 인터페이스 인터페이스에 추상 프로퍼티 선언 가능 기본 접근자 final + public 중첩 클래스는 기본적으로 내부 클래스 아님 뻔하지 않은 생성자, 프로퍼티 짧은 주 생성자 구문으로도 거의 모든 경우 커버 가능 데이터 클래스 클래스를 data로 선언, 컴파일러가 일부 표준 메서드 자동생성 클래스 위임 위임을 처리하기 위한 준비 메소드 자동생성 object 키워드 사용 싱글톤 클래스, 동반 객체, 객체 식(자바의 무명 클래스) 표현 시 사용 4.1 클래스 계층 정의 4.1.1 코틀린 인터페이스 추상메서드 , 구현이 있는 메소드 정의 가능 상태(필드) 정의 불가 - 자바에서는 extends와 implements 키워드를 사용, 코틀린에서는 클래스 이름 뒤에 `콜론(:)` 사용 - 자바와 마.. 2021. 12. 8.
반응형