240308 TIL
DoDoBest
·2024. 3. 8. 23:25
오늘 학습한 내용
- Kotlin In Action 9.3 변성: 제네릭과 하위 타입
- Udemy 강의
- partition : 조건에 따라 collection을 두 개의 리스트로 분리하는 연산
- group: 데이터를 구분할 수 있는 값을 key로 갖는 map 타입으로 변환해주는 연산
- Nested class는 Outer class의 paramter에 접근할 수 없다.
- Nested class는 Outer.Nested()와 같이 Outer 클래스를 통해 객체를 생성하지만, Inner class는 Outer().Nested()와 같이 Outer 객체를 통해서 생성한다.
- A 클래스의 확장함수를 B 클래스의 body에서 정의할 수 있다. 생성된 A의 확장함수를 B만 호출할 수 있고, A는 호출하지 못한다.
- 제네릭 upper bounds를 생략하면 기본값인 Any?로 설정된다. - 의존성 주입 강의
- 2.3 Hilt로 시작하는 나의 첫번째 의존주입
- 2.4 Hilt 내부 동작 이해 - 코틀린 코루틴 책 학습 16장 채널 일부 내용
- for .. in은 무엇일까요?
https://dodobest.tistory.com/66 - 내일배움캠프 3주차 강의 보기
- 오버로딩 작성시, 반환형은 상관 없고, 매개변수의 갯수나 타입이 달라야 한다! 반환형만 다르다면 오류로 컴파일이 되지 않는다.
- body 없이 선언된 메소드를 추상 메소드라고 부른다. 인터페이스는 추상 메소드만 작성하는 것이 원칙이지만, 최근에는 추상 메소드가 아닌 메소드를 선언도 허용한다. 그러나 되도록 추상 메소드를 사용하자.
- 인터페이스는 왜 필요한가? -> 클래스는 한 개의 클래스만 상속할 수 있다. 만약 여러 클래스의 기능을 상속해서 사용해야 한다면? -> 가장 중요한, 관련있는 클래스를 상속하고 부가적인 것들은 인터페이스로 선언하여 구현한다.
- 아래 Nice 클래스의 body에 있는 생성자는 부생성자이다. class 이름 옆에 주생성자가 없어, body에 있는 생성자가 주생성자로 된다고 생각했는데, 아니였다! 그래서 init이 먼저 출력된다.
class Nice {
constructor(name: String, age: Int) {
println("부생성자") // 2
}
init {
println("init") // 1
}
}
fun main() {
val character = Nice("A", 3)
}
'TIL' 카테고리의 다른 글
240311 TIL (0) | 2024.03.11 |
---|---|
240309 TIL - 면접을 위한 공부를 하지 말자 (0) | 2024.03.09 |
240307 TIL - 네이버에 합격하는 분들은 어떤 사고를 하실까 (0) | 2024.03.07 |
240306 TIL (0) | 2024.03.06 |
240305 TIL - sealed class (0) | 2024.03.05 |