본문 바로가기

분류 전체보기12

Kotlin in action 7장 연산자 오버로딩과 기타 관례 관례? 여기서 관례(컨벤션)는, 코틀린에서 쓰는 plus, equals, get 같은 함수명을 관례라고 칭한다. 7.1 산술 연산자 오버로딩 자바에서 산술 연산자는 원시(Primitive) 타입과 String에 대해서만 사용할 수 있다. 코틀린에서는 클래스에서 산술 연산자를 인자값을 다르게 해서 새로 정의함으로써 원하는대로 쓸 수 있다. 산술 연산자 오버로딩은 코틀린에서 이미 정의해놓은 연산자(+, *, /, ...)를 내가 만든 클래스에서 해당 함수(.plus(), .times(), ...)의 인자값을 다르게 받으면 그 경우로 새로 만들어 쓸 수 있다는 뜻이다. 다음부터는 코틀린에 어떤 산술 연산자가 있고 어떻게 사용하는지 알아볼 수 있다. 7.1.1 이항 산술 연산 오버로딩 리스트 7.1 plus 연.. 2020. 4. 23.
Kotlin in action 6장 코틀린 타입 시스템 6.1 널 가능성 NullPointerException ? Null 값을 가지고 있는 변수를 사용해서 객체의 필드나 메소드에 접근하려고 하면 발생하는 오류. runtime에 발생하는 exception 입니다. 코틀린에서는 "null이 될 수 있는 타입" 이란 것을 지원함으로써, null에 접근할 때를 가능한한 실행시점에서(runtime) 컴파일 시점으로 옮깁니다. 이것은 null 될 수 있는지 여부를 타입시스템에 추가함으로써 컴파일러가 여러 가지 오류를 컴파일 시 미리 감지하게 한다는 것입니다. 6.1.1 널이 될 수 있는 타입 코틀린의 변수는 기본적으로 null이 될 수 없는 타입입니다. null이 될 수 있는 변수를 인자로 받는 메소드를 호출하는것을 금지합니다. fun strLen(s: String).. 2020. 4. 13.
Kotlin in action 5장 람다로 프로그래밍 람다? 람다 식(lambda expression)? 다른 함수에 넘길 수 있는 작은 코드 조각 →코드 블록을 함수 인자로 넘기기 값처럼 여기저기 전달할 수 있는 동작의 모음 →함수형 언어에서 함수를 직접 다른 함수에 전달하기. +추가 익명클래스로 선언된 구현부를 변수처럼 쓸수 있게 해준다. (변수처럼? 여기저기 넣을수있음) 람다 식을 사용하면 코드가 더 간결해짐. →함수를 선언할 필요가 없고 코드 블록을 직접 함수의 인자로 전달할 수 있다. 예제 -버튼 클릭에 따른 동작 정의하는 경우 클릭 이벤트를 처리하는 리스너를 추가한다. button.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { /* 클릭 시.. 2020. 4. 9.
Activity의 생명주기, Life Cycle 2021.11.12에 수정 Lifecycle이란? 안드로이드의 컴포넌트는 Lifecycle을 가지고 있습니다. Lifecycle은 컴포넌트가 생성되고 사라지기 전까지 갖게되는 상태의 집합입니다. 컴포넌트는 사용자가 앱을 사용하면서 일어나는 상황에따라 다른 상태로 전환되고, 전환될때마다 안드로이드 시스템은 Lifecycle 콜백을 호출해서 컴포넌트에게 상태 전환을 알려줍니다. 사용자가 기대하는 방식으로 앱이 작동할 수 있도록 라이프사이클 콜백이 호출되는 시기와 각 콜백 메서드에서 수행해야할 작업을 이해하고, Lifecycle 콜백 메서드를 구현해야합니다. 안드로이드 컴포넌트 안드로이드 컴포넌트에는 Activity, Fragment, Service, App 자체, 기본 프로세스가 될 수 있습니다. onCre.. 2020. 4. 2.