Study(종료)
-
7-1 컬렉션과 I/O 자세히 알아보기 : 컬렉션 타입(1)Study(종료)/Kotlin 22.09.13 ~ 12.18 2022. 10. 28. 22:18
7장 7-1. 컬렉션과 I/O 자세히 알아보기 : 컬렉션 타입 (1) (7-1.1~ 7-1.4) 7-1. 컬렉션과 I/O 자세히 알아보기 : 컬렉션 타입 (2) ( 7-1.5~ 7-1.7 ) 7-1. 컬렉션과 I/O 자세히 알아보기 : 컬렉션 타입 (3) ( 7-1.8~ 7-1.11 ) 7-2. 컬렉션과 I/O 자세히 알아보기 : 파일과 I/O 스트림 컬렉션은 정말 자주쓰고 정말 중요한 내용이라고 생각한다. 사실 나는 이미 코딩테스트 준비를 하고, 실제 코드를 작성할때 Hashmap, ArrayList, List 같은 컬렉션은 상당히 많이 쓰고 있지만, 내부적으로 어떻게 구현되어 있는지, 어떤 내용을 상속받는지 등에 대해서는 잘 모르고 있다. 이 단원에서 이러한 내용들에 대해 좀 더 자세히 살펴봐야겠다...
-
6-3. 특별한 클래스 사용하기 : 인라인 클래스(값 클래스)Study(종료)/Kotlin 22.09.13 ~ 12.18 2022. 10. 23. 20:55
6장 6-1. 특별한 클래스 사용하기 : 이넘(enun) 클래스 6-2. 특별한 클래스 사용하기 : 데이터 클래스 6-3. 특별한 클래스 사용하기 : 인라인 클래스(값 클래스) 6.3. 인라인 클래스(값 클래스) 프로그램에서 통화(돈)이라는 개념을 처리하고 싶을 때, 서로 다른 통화를 구분없이 섞어서 사용한다면 실수할 가능성도 많고, 복잡해진다. 이 경우 여러 통화를 서로 다른 클래스로 정의해 타입 시스템의 도움을 받아 오류를 줄일 수 있는데, 래퍼 클래스와 유틸리티 함수를 사용하면 이러한 방법을 사용할 수 있다. class Dollar(val amount: Int) // amount = 센트 class Euro(val amount: Int) // amount = 센트 fun Dollar.toEuro()..
-
6-2. 특별한 클래스 사용하기 : 데이터 클래스(data class)Study(종료)/Kotlin 22.09.13 ~ 12.18 2022. 10. 22. 22:23
6장 6-1. 특별한 클래스 사용하기 : 이넘(enun) 클래스 6-2. 특별한 클래스 사용하기 : 데이터 클래스 클래스 6-3. 특별한 클래스 사용하기 : 인라인 클래스(값 클래스) 6.2 데이터 클래스(data class) 1) 데이터 클래스와 데이터 클래스에 대한 연산 참조 타입의 값은 기본적으로 참조가 가리키는 객체의 정체성(identify)이 같으면 동일하다. 이 말은 두 객체가 같은 객체(메모리에서 같은 위치에 있는)라면 같다는 말이다. 이 경우 인스턴스의 필드 값(John, Deo, 25)는 고려 대상이 아니다. class Person(val firstName: String, val lastName: String, val age: Int) fun main(){ val person1 = Per..
-
6-1. 특별한 클래스 사용하기 : 이넘(enun) 클래스Study(종료)/Kotlin 22.09.13 ~ 12.18 2022. 10. 13. 11:21
6장 6-1. 특별한 클래스 사용하기 : 이넘(enun) 클래스 6-2. 특별한 클래스 사용하기 : 데이터 클래스 6-3. 특별한 클래스 사용하기 : 인라인 클래스(값 클래스) 전 단원에 좀 어렵고, 양이 많은 내용들을 작성해서 다음 장에는 덜 어렵고 가벼운 내용들이 나온 것 같다. 6장에서는 프로그래밍 패턴을 편하게 구현하도록 도와주는 이넘 클래스, 데이터 클래스, 인라인 클래스에 대해 배운다. 6.1 이넘(enum) 클래스 enum 클래스는 미리 정의된 상수들로 이루어진 제한된 집합을 표현하는 클래스다. 단순한 형태는 enum class의 본문에 상수를 모아둔 형태다. enum class Weekday{ MON, TUE, WED, THUR, FRI, SAT, SUN } fun Weekday.isWor..
-
5-5. 고급 함수와 함수형 프로그래밍 활용하기 : 수신 객체가 있는 호출 가능 참조Study(종료)/Kotlin 22.09.13 ~ 12.18 2022. 10. 10. 21:13
5장 5-1. 고급 함수와 함수형 프로그래밍 활용하기 : 코틀린을 활용한 함수형 프로그래밍 5-2. 고급 함수와 함수형 프로그래밍 활용하기 : 확장 5-3. 고급 함수와 함수형 프로그래밍 활용하기 : 확장 프로퍼티 5-4. 고급 함수와 함수형 프로그래밍 활용하기 : 동반 확장 5-5. 고급 함수와 함수형 프로그래밍 활용하기 : 수신 객체가 있는 호출 가능 참조 5-5. 수신 객체가 있는 호출 가능 참조 코틀린에서 수신 객체가 있는 함숫값을 정의하는 호출 가능 참조를 만들 수 있다. 클래스 멤버를 바탕으로 하거나 확장 선언을 바탕으로 이와 같은 참조를 만들 수 있다. 문법적으로 이들은 바인딩된 호출 가능 참조와 비슷하지만, 수신 객체를 계산하는 식 대신 수신 객체 타입이 앞에 붙는다는 점이 다르다. fun..
-
5-4. 고급 함수와 함수형 프로그래밍 활용하기 : 동반 확장Study(종료)/Kotlin 22.09.13 ~ 12.18 2022. 10. 9. 00:05
5장 5-1. 고급 함수와 함수형 프로그래밍 활용하기 : 코틀린을 활용한 함수형 프로그래밍 5-2. 고급 함수와 함수형 프로그래밍 활용하기 : 확장 5-3. 고급 함수와 함수형 프로그래밍 활용하기 : 확장 프로퍼티 5-4. 고급 함수와 함수형 프로그래밍 활용하기 : 동반 확장 5-5. 고급 함수와 함수형 프로그래밍 활용하기: 수신 객체가 있는 호출 가능 참조 5-4. 동반 확장 4장에서 동반 객체를 설명했다. 동반 객체는 어떤 클래스에 내포된 객체 중에서 바깥 클래스의 이름을 통해 객체 멤버에 접근할 수 있는 특별한 객체이다. 확장에서도 이러한 기능을 사용할 수 있다. fun IntRange.Companion.singletonRange(n: Int) = n..n fun main() { println(In..
-
5-3. 고급 함수와 함수형 프로그래밍 활용하기 : 확장 프로퍼티Study(종료)/Kotlin 22.09.13 ~ 12.18 2022. 10. 8. 23:42
5장 5-1. 고급 함수와 함수형 프로그래밍 활용하기 : 코틀린을 활용한 함수형 프로그래밍 5-2. 고급 함수와 함수형 프로그래밍 활용하기 : 확장 5-3. 고급 함수와 함수형 프로그래밍 활용하기 : 확장 프로퍼티 5-4. 고급 함수와 함수형 프로그래밍 활용하기 : 동반 확장 5-5. 고급 함수와 함수형 프로그래밍 활용하기: 수신 객체가 있는 호출 가능 참조 5-3. 확장 프로퍼티 1) 확장 프로퍼티 앞에서 사용했던 확장 함수와 비슷하게 확장 프로퍼티 역시 정의할 수 있다. 다른 일반 멤버 프로퍼티와 동일한 방법으로 확장 프로퍼티에 접근할 수 있으며 문법도 비슷하다. val IntRange.leftHalf: IntRange get() = start..(start + endInclusive)/2 fun m..
-
5-2. 고급 함수와 함수형 프로그래밍 활용하기 : 확장Study(종료)/Kotlin 22.09.13 ~ 12.18 2022. 10. 8. 23:20
5장 5-1. 고급 함수와 함수형 프로그래밍 활용하기 : 코틀린을 활용한 함수형 프로그래밍 5-2. 고급 함수와 함수형 프로그래밍 활용하기 : 확장 5-3. 고급 함수와 함수형 프로그래밍 활용하기 : 확장 프로퍼티 5-4. 고급 함수와 함수형 프로그래밍 활용하기 : 동반 확장 5-5. 고급 함수와 함수형 프로그래밍 활용하기: 수신 객체가 있는 호출 가능 참조 5-2. 확장 실무에서 기존 클래스를 확장해야 하는 경우가 자주 있다. 한 클래스 안에 속한 메서드를 모두 사용하지 않지만, 모든 메서드를 다 import할 경우 실용적이지 않다. 이 경우 여러 프로그램 모듈에 함께 사용되는 메서드를 서로 분리해 유지하는 방법이 있다. 자바의 경우 이런 추가 메서드를 별도의 유틸리티 클래스로 묶어 사용하지만, 코틀린..