1. object : 클래스 선언과 인스턴스 생성 object 키워드를 통해 클래스를 정의하는 동시에 객체를 생성한다. 싱글턴을 정의하는 방법 중 하나이다. companion object는 인스턴스 메소드는 아니지만 어떤 클래스와 관련 있는 메소드와 팩토리 메소드를
1. 모든 클래스가 정의해야 하는 메소드 문자열 표현: toString() 주로 디버깅이나 로깅 시 이 메소드를 사용한다. 객체의 동등성: equals() 코틀린에서 == 연산자는 참조 동일성을 검사하지 않고 객체의 동등성을 검사한다. 따라서 == 연산은 equal
프로그램이란?파일이 저장 장치에 저장되어 있지만 메모리에 올라와 있지 않는 정적인 상태(실행시킬 수 있는 파일)운영체제로부터 시스템 자원을 할당받는 작업의 단위실행 중인 프로그램위 그림은 프로세스가 실행될 때, 메모리에 생기는 주소 공간이다.Text 영역 - 사용자가
1. 동시성 (Concurrency) 동시에 실행되는 것 처럼 보이는 것 싱글 코어에서 멀티쓰레드를 동작시키는 방식 논리적인 개념 2. 병렬성 (Parallelism) 실제로 동시에 여러 작업이 처리되는 것 멀티 코어에서 멀티 쓰레드를 동작시키는 방식 물리적인 개념
1. 내부 클래스와 중첩 클래스: 기본적으로 중첩 클래스!! 코틀린의 중첩 클래스는 명시적으로 요청하지 않는 한 외부 클래스 인스턴스에 대한 접근 권한이 없다. ( Java의 정적 중첩 클래스와 대응한다 ) Java의 경우 Button을 직렬화하면 java.io.No
1. Serializable이란? >Java의 마커 인터페이스 직렬화란 컴퓨터의 메모리 상에 존재하는 데이터를 파일로써 저장하거나, 통신하는 다른 컴퓨터에게 알맞은 형식에 맞추어 전달하기 위해 바이트 스트림 형태로 만드는 것을 의미한다. >프로그램에서 사용되는 데이터
로버트 C. 마틴이 만든 소프트웨어 관심사를 계층별로 분리하는 소프트웨어 디자인 철학.Use Case를 중심으로 설계..!!!!내부원에 있는 것은 정책이고 바깥으로 갈수록 정책을 수행하는 메커니즘으로 구성된다.주요 원칙의존성이 외부 -> 내부 방향으로 존재한다. ( 내
코틀린의 인터페이스 기본 선언은 final이며 public이다.코틀린 인터페이스는 자바 8의 인터페이스와 비슷한데 추상 메소드뿐 아니라 구현이 있는 메소드도 정의할 수 있다. 단, 필드는 들어갈 수 없다.자바는 extends와 implements를 사용하지만 코틀린에서
관찰 가능한(Observable) 데이터 클래스로 Lifecycle을 통해 생명주기를 인식하고 activity나 fragment, service와 컴포넌트들의 생명 주기를 따른다.LiveData는 데이터 변경을 활성화된 Observer를 통해서 알려주는데 주어진 Lif
Activity나 Fragment 같은 다른 컴포넌트의 Lifecycle이 변경될 때 이에 대응하는 라이브러리.Component(안드로이드 component가 아닌 자신 만의 역할이 있는 코드 component)가 lifecycleOwner의 상태변화를 observe하
1. Jetpack 컴포넌트 > 생산성을 높여 개발할 수 있게 돕는 라이브러리, 도구, 가이드의 모음 androidx.* 패키지 라이브러리로 제공된다. Foundation, Architecture, Behavior, User Interface 4개 카테고리로 분류된다
파라미터 앞에 vararg를 붙이면 가변 인자를 사용할 수 있다.코틀린에서는 배열을 명시적으로 풀어서 배열의 각 원소가 인자로 전달되게 해야 한다. 배열 앞에 \*를 붙이면 스프레드 연산자가 해당 작업을 진행한다.중위 호출 : 수신 객체와 유일한 메소드 인자 사이에
1. 확장함수 > 어떤 클래스의 멤버 메소드인 것처럼 호출할 수 있지만 그 클래스의 밖에 선언된 함수이다. 확장 함수를 만들려면 추가하려는 함수 이름 앞에 그 함수가 확장할 클래스의 이름을 덧붙이기만 하면 된다. 수신 객체 타입 (receiver type) : 확장
코틀린은 자체 collection을 제공하지 않는데 이는 표준 자바 collection을 활용하면 자바 코드와 상호작용하기가 훨씬 쉽기 때문이다.다시 말해서, 코틀린 collection은 자바 collection과 똑같은 class이다. 하지만 확장함수를 통해 자바보다
코틀린에서 Exception 처리는 Java나 다른 언어와 비슷하다.함수를 정상적으로 종료할 수 있지만 오류가 발생하면 Exception을 throw할 수 있다.함수를 호출하는 쪽에서 그 Exception을 잡아 처리하거나 함수 호출 단에서 catch하지 않는다면 함수
while 루프코틀린에는 while과 do-while 루프가 있다. 두 루프의 문법은 자바와 같다.코틀린에서는 자바의 for 루프( 초깃값, 증가 값, 최종 값)를 대신하기 위해 range를 사용한다. range는 기본적으로 두 값으로 이뤄진 구간이며 양끝을 포함한다.
when도 if문과 마찬가지로 값을 만들어내는 expression이므로 다음과 같이 쓸 수 있다.Java와 달리 분기의 끝에 break를 넣지 않아도 된다.여러 값을 매치 패턴으로 사용할 경우, 값 사이에 콤마( , )로 구분한다.Kotlin when의 분기 조건은 임
1. enum 클래스 > Enum은 열거형이라 불리며, 서로 연관된 상수들의 집합이다. 2. enum을 사용하지 않고 상수를 정의하는 다양한 방법 const val 사용 -> 상수가 늘어날수록 가독성이 떨어지고, 각각의 상수 집합에서 같은 이름으로 정의된 상수가 있
함수를 선언할 땐 fun 키워드를 사용한다.함수를 최상위 수준에 정의할 수 있다. 즉, 자바와 달리 클래스 안에 함수를 넣어야 할 필요가 없다.\-> 코틀린에서 if문은 statement가 아니라 expression이다.expression : 값을 만들어내며 다른 ex
Fragment에서 작업을 추가, 삭제 또는 교체하고 백 스택에 추가하는 등의 작업을 실행하는 클래스Activity에서 액세스getSupportFragmentManager()메서드를 통해 FragmentManager를 사용할 수 있다. (Kotlin에서는 support