[Android APP] feat. Kotlin/Kotlin 언어 기초(34)
-
Kotlin : 작업 스케쥴링
1. 의존성 추가 implementation 'androidx.work:work-runtime-ktx:$version' 2. Worker 서브 클래스 생성 private const val TAG = "PollWorker" class PollWorker(val context : Context, workerParams : WorkerParameters) : Worker(context, workerParams){ override fun doWork(): Result { Log.i(TAG, "Work request Triggered") return Result.success() } } Worker 서브 클래스에는 백그라운드에서 수행하고자 하는 작업을 처리하는 로직을 넣는다. 그리고 이 클래스가 준비되면 Work..
2023.03.12 -
30. 람다 표현식
람다 표현식이란? 1. 이름이 없는 함수를 뜻하지만 이름이 없는 익명 함수와는 다르다. 2. 고급 기능을 가진 코드를 간결하고 짧게 정리해준다. 3. 람다 표현식과 익명 함수는 "function literals"이다. 예를 들어 선언되지 않고 곧바로 표현식으로 전달된 함수이다. 4. 람다는 중괄호({})로 정의되고, 매개변수와 함수 바디로 변수를 받는다. 5. 함수 바디는 변수 뒤에 화살표와 연산자와 함께 쓰인다. (follow by -> 연산자) 문법은 변수, 람다 표현식, 람다 바디 등 모든 것은 중괄호로 둘러 싼다. {varuable(s) -> body_of_lambda} 아래 코드를 람다식으로 줄여보자. sum이라는 람다 표현식을 만들어 코드를 획기적으로 줄일 수 있다.
2022.03.13 -
29. 예외처리 ( try-catch, finally)
😀 Exception이란? 1. 프로그램의 런타임 문제이며, 프로그램의 종료를 초래할 수 있다. 2. 저장 공간 부족, out of bound, 0으로 나눈 조건 등이 있다. 3. 프로그램 실행에서 이런 문제를 처리하기 위해 Exception Handling을 한다. - 오류가 발생하더라도 프로그램이 종료되는 것이 아니라 예외처리를 해주어 프로그램은 돌아가지만 에러가 발생하는 것을 말한다. - 예를들어 네트워크 문제일 경우 - 인터넷을 연결해주세요 등 알림을 띄어주는 식. 😀 Throwable Class 예시 : throw키워드 Exception이름 (Exception 활동) throw MyException("throw Exception") 4개의 주요 keyword try catch finally th..
2022.03.13 -
28. Safe Cast, Unsafe Cast 연산자
특정 타입의 것을 다른 타입으로 캐스트 하는 것을 의미한다. Unsafe cast 연산자 키워드 as 1. 어떤 때는 변수를 캐스트하지 못하고 예외 처리가 된다. 2. 불안전한 캐스트는 infix연산자 as에 의해 실행된다. 예제 물음표가 있는 Nullable String은 Nullable String이 아닌 것으로 캐스트될 수 없다. 따라서 예외처리가 된다. Safe cast 연산자 키워드 as? 1. 한 타입으로 안전하게 캐스트하도록 도와준다. 2. 캐스팅할 수 없을 시 class cast exception 처리 대신에 null 값을 돌려준다. 예제 location이라는 변수는 any 타입이고 String값이 들어가 있다. 따라서 아래 캐스트를 진행할 때 String은 제대로 캐스트가 되지만 Int로..
2022.03.13 -
27. 중첩, 내부 클래스
중첩 클래스 : 다른 클래스 안에 생성된 클래스 내부 클래스 : 키워드 inner를 사용한 다른 클래스 안의 클래스 중첩 클래스(Nested class) 1. 다른 클래스 안에 생성되어 자동으로 정적이다. 2. 데이터 멤버와 멤버 함수는 클래스 객체를 생성하지 않고도 접근할 수 있다. (객체를 만들지 않고, 함수와 멤버를 사용할 수 있는 클래스이다.) 3. 중첩 클래스는 외부 클래스의 데이터 멤버에 접근할 수 없다. (외부 클래스는 중첩 클래스 멤버에 접근할 수 있다) 내부 클래스(Inner class) 1. 키워드 inner로 다른 클래스 안에 만들어진 클래스이다. 2. inner라고 표시된 중첩 클래스가 내부 클래스이다. 3. 중첩 클래스와의 차이점은 인터페이스 안에 또는 중첩 클래스가 아닌 곳에 선..
2022.03.13 -
26. 접근 제한자
접근 제한자란? 1. 코틀린에서 클래스, 인터페이스, 프로퍼티를 제한하는데 사용하는 키워드이다. 2. 클래스 헤더나 메소드 바디 등 여러 곳에 사용된다. 3. 종류로는 아래 네 가지가 존재한다. public private protected internal public 제한자 1. public으로 수정된 요소는 프로젝트 어디서든 접근이 가능하다. 2. 코틀린에서 기본 제한자이며, 클래스나 인터페이스 등이 접근 제한자로 명시되지 않는다면, 그 부분은 public 스코프에 사용된 것이다. 3. 모든 public 선언은 파일 맨 위에 위치한다. 4. 클래스의 멤버가 명시되지 않으면, 자동으로 public이 디폴트이다. private 제한자 1. 프로퍼티, 필드 등이 선언된 블록에서만 요소에 접근할 수 있게 만들..
2022.03.13