일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 |
- oracle
- android
- 인프라
- 소프트웨어공학
- 코틀린
- write by chatGPT
- 자바암호
- 자바
- Spring boot
- 리눅스
- 뉴턴역학
- NIO
- write by GPT-4
- 유닉스
- lombok
- chatGPT's answer
- kotlin
- GPT-4's answer
- Java
- 자바네트워크
- 시스템
- flet
- 웹 크롤링
- JVM
- GIT
- 고전역학
- 역학
- 파이썬
- Database
- python
- Today
- Total
목록2023/06 (51)
Akashic Records
제네릭은 타입을 파라미터로 가지는 클래스와 인터페이스를 정의하는 프로그래밍 기법입니다. 제네릭을 사용하면 다양한 타입의 객체를 사용할 수 있으며, 컴파일 시간에 타입 안정성을 제공하므로 코드의 재사용성과 유연성을 높입니다. 제네릭 클래스 제네릭 클래스는 하나 이상의 타입 파라미터를 가질 수 있습니다. 이 파라미터는 클래스 내에서 변수나 함수의 타입으로 사용됩니다. 예제: class Box(val content: T) val intBox = Box(1) val stringBox = Box("Hello") println(intBox.content) // 출력: 1 println(stringBox.content) // 출력: Hello 이 예제에서 Box 클래스는 T 타입 파라미터를 가집니다. Box(1)로 ..
코틀린에서 컬렉션은 데이터 그룹을 저장하고 관리하는데 사용되는 구조를 의미합니다. 주로 사용되는 컬렉션 타입에는 List, Set, Map이 있습니다. List List는 순서가 있는 컬렉션으로 중복된 원소를 포함할 수 있습니다. 읽기 전용과 가변적인 두 가지 타입의 List가 있습니다. 예제: val readOnlyList = listOf("Apple", "Banana", "Cherry") val mutableList = mutableListOf("Apple", "Banana", "Cherry") mutableList.add("Date") println(mutableList) // 출력: [Apple, Banana, Cherry, Date] Set Set은 순서를 보장하지 않으며 중복된 원소를 포함할 ..
고차 함수는 Kotlin의 중요한 기능 중 하나로, 함수를 파라미터로 받거나 결과로 반환하는 함수를 의미합니다. 이를 통해 코드의 가독성과 유연성을 높일 수 있습니다. 고차 함수의 선언 고차 함수는 일반 함수와 동일한 방식으로 선언됩니다. 차이점은 고차 함수는 다른 함수를 파라미터로 받거나 결과로 반환한다는 점입니다. 예제: fun operate(a: Int, b: Int, operation: (Int, Int) -> Int): Int { return operation(a, b) } val sum: (Int, Int) -> Int = { a, b -> a + b } println(operate(3, 5, sum)) // 출력: 8 이 예제에서 operate 함수는 세 번째 파라미터로 operation 함..
익스텐션 함수는 Kotlin의 강력한 기능 중 하나로, 기존 클래스에 새로운 메서드를 추가하는 것처럼 사용할 수 있습니다. 이 기능은 클래스의 정의를 변경하지 않고도 클래스의 기능을 확장하게 해줍니다. 익스텐션 함수의 선언 익스텐션 함수는 "클래스명.함수명"의 형태로 선언됩니다. 함수 내부에서 this 키워드를 사용하면 해당 클래스의 인스턴스를 가리킵니다. 예제: fun String.hello(): String { return "Hello, $this!" } println("Kotlin".hello()) // 출력: Hello, Kotlin! 이 예제에서 String 클래스에 hello 익스텐션 함수를 추가했습니다. this는 String 인스턴스를 가리키며, "Kotlin".hello()를 호출하면 "..
람다 표현식은 Kotlin에서 강력한 도구로, 이름 없이 사용되는 익명 함수를 나타냅니다. 람다 표현식은 함수의 파라미터로 전달되거나 결과로 반환될 수 있습니다. 람다 표현식의 선언 람다 표현식은 중괄호 {} 안에 선언되며, 파라미터는 -> 이전에, 함수 본문은 -> 이후에 위치합니다. 예제: val sum: (Int, Int) -> Int = { a, b -> a + b } println(sum(3, 5)) // 출력: 8 이 예제에서 sum은 두 개의 Int 파라미터를 받고 Int를 반환하는 람다 표현식입니다. 람다 표현식과 함수 파라미터 람다 표현식은 함수의 파라미터로 전달될 수 있습니다. 이를 통해 함수를 더 유연하게 만들 수 있습니다. 예제: fun operate(a: Int, b: Int, o..
Null 안정성은 Kotlin 언어의 핵심 특징 중 하나입니다. Kotlin은 null 참조를 허용하지 않는 데이터 타입을 통해 NullPointer 예외를 방지합니다. 이를 통해 Kotlin 코드는 보다 안정적이고 명확해집니다. Null 불가 타입 Kotlin에서 변수를 선언할 때 타입 뒤에 물음표(?)를 붙이지 않으면 해당 변수는 null 값을 가질 수 없습니다. 이는 변수가 항상 non-null 값을 가지도록 보장합니다. 예제: var nonNullString: String = "Hello, Kotlin!" nonNullString = null // 컴파일 오류 이 예제에서 nonNullString은 non-null String 타입이므로 null 값을 가질 수 없습니다. Null 가능 타입 변수가..
추상화와 캡슐화는 객체지향 프로그래밍의 핵심 원칙입니다. 이들은 코드의 복잡성을 관리하고 유지보수를 용이하게 하는 데 중요한 도구입니다. 추상화 추상화는 복잡한 시스템을 단순하게 표현하는 프로세스입니다. Kotlin에서는 abstract 키워드를 사용하여 추상 클래스를 선언하고, abstract 키워드를 사용하여 추상 메서드를 선언할 수 있습니다. 추상 클래스는 인스턴스를 만들 수 없으며, 추상 메서드는 구현이 없는 메서드입니다. 예제: abstract class Animal { abstract fun sound() } class Dog : Animal() { override fun sound() { println("Woof!") } } val myDog = Dog() myDog.sound() // 출력..
객체지향 프로그래밍의 핵심 개념 중 하나는 상속입니다. 상속은 클래스가 다른 클래스의 속성과 메서드를 상속받을 수 있게 해주는 매커니즘입니다. 이렇게 하면 코드의 재사용성을 높이고 중복을 줄일 수 있습니다. 상속 Kotlin에서 클래스는 기본적으로 상속이 불가능하도록 설계되어 있습니다. 클래스를 상속 가능하게 만들려면, open 키워드를 사용하여 클래스를 선언해야 합니다. 예제: open class Animal { var name: String = "" fun eat() { println("$name is eating.") } } class Dog : Animal() { fun bark() { println("$name says: Woof!") } } val myDog = Dog() myDog.name ..