본문 바로가기

분류 전체보기

(438)
[Kotlin] Infix 함수 Infix 함수 두개의 변수 가운데 오는 함수 to, and 등 to : 양 옆의 객체들로 Pair 객체를 만들어줌 Infix 함수인 to를 사용한 코드를 보면 key가 value에 매핑된다는 것을 명확히 알 수 있습니다. val map1 = mapOf(Pair("key1", "value1"), Pair("key2", "value2")) val map2 = mapOf("key1" to "value1", "key2" to "value2") Infix 함수 사용자 정의 문자열 "Hello"는 dispatcher이고, 문자열 "World"는 receiver입니다. 구현부에서 사용한 this는 dispatcher 객체를 의미합니다. 아래 코드를 실행시키면 두개의 객체(dispatcher, receiver)가 합..
[Kotlin] 가변인자 vararg(Variable number of arguments) 가변 인자를 사용하면 함수를 호출할 때 인자 개수를 유동적으로 지정할 수 있다. fun sum(vararg num: Int) = num.sum() fun main(args: Array) { val n1 = sum(1) val n2 = sum(1, 2, 3, 4, 5) println(n1) // 1 println(n2) // 15 } 배열을 가변인자로 넘기기 이미 존재하는 배열을 vararg 함수의 인자로 넘겨야할 때가 있다. 이 경우 배열 이름 앞에 *(spread operator)를 붙여주면 된다. C/C++의 포인터와 다름 fun showAll(vararg s: String) { println(s.joinToString()) } fun main(args: Array) { val test = array..
[Kotlin] Inline 함수 1. 람다식을 사용했을 때 무의미한 객체 생성을 예방 //1. Kotlin fun doSomethingElse(lambda: () -> Unit) { println("Doing something else") lambda() } //1. Java public static final void doSomethingElse(Function0 lambda) { System.out.println("Doing something else"); lambda.invoke(); } inline 없을 때 //2. Kotlin fun doSomething() { println("Before lambda") doSomethingElse { println("Inside lambda") } println("After lambda")..
[Kotlin] data Class Data Class 데이터 보관 목적으로 만든 클래스 프로퍼티에 대한 toString(), hashCode(), equals(), copy() 메소드를 자동으로 만들어 줌. 그래서 boilerplate code를 만들지 않아도 됨 [특징] 데이터 클래스의 생성자(primary constructor)는 1개 이상의 프로퍼티를 선언되어야 함 데이터 클래스의 생성자 프로퍼티는 val 또는 var으로 선언해야 함 데이터 클래스에 abstract, open, sealed, inner 를 붙일 수 없음 클래스에서 toString(), hashCode(), equals(), copy()를 override하면, 그 함수는 직접 구현된 코드를 사용함 데이터 클래스는 상속받을 수 없음
[Kotlin] Modifiers 선언 앞이나 변수 앞에 붙이는 언어의 예약어 public / protected / private / internal -> 가시성 제한자 expect / actual -> 코틀린 멀티플랫폼의 예약어, 사용할 일 X final / open / abstract / sealed / const -> 상속의 제한이나 추상 클래스, 봉인 클래스, 상수를 정의 external -> JNI의 함수여서 C나 C++를 호출하는 함수를 의미 override -> 오버라이딩 지시자 lateinit -> 변수 지연 초기화 지시자 tailrec -> 재귀함수를 반복함수로 최적화 시켜줌 vararg -> 함수에서 길이를 모르는 인자를 배열로 받게해줌 suspend -> 코루틴 suspend 함수 inner -> Nested Clas..
[220412][나눔in] OOP, 건축 PPT Infix 함수, vararg 키워드, Inline 함수, data 클래스, 객체지향 프로그래밍, 접근지정자, 생성자에 대해 알게되었다. 선례의 건축이야기 1강. 왜 건축을 해서 건물주가 되려고 할까?
객체지향 프로그래밍이란? 객체지향 프로그래밍 - 코드를 정리하는 방법 - 데이터에 대한 생각 - 구조 방식 프로그램에는 객체(object)가 필요함 각 객체는 같은 속성을 갖지만 각각 다른 데이터를 가짐 새로운 속성을 추가하거나, 오타를 발견한다거나, 변경을 하기 위해 데이터만 넣으면 적용해주는 함수인 Class를 사용함 메서드는 클래스 내에 있는 함수임 constructor, init 메서드는 나의 클래스가 어떤 속성을 갖게될 것인지 구성할지 정할 수 있고 함수처럼 인수를 받을 수 있음 this, self : 클래스 내의 속성 및 메서드를 지칭하는 방법 기본 메서드 이외에도 사용자 정의 메서드를 생성할 수 있음 상속은 자녀 클래스가 부모 클래스의 속성을 가지는 것임. 코드 중복을 줄이고, 코드를 재사용 가능한 조각으로 나눌 수..
[Kotlin] 개념, Java와의 호환, 장점, 활용 방법, 만든 이유 [개념] 100% 자바와 호환이 가능한 프로그래밍 언어 [Java와 100% 호환의 비결] JVM을 통해 같은 프로젝트 내 Kotlin 파일이 Java 파일 바로 옆에 있다면 Java에서 Kotlin 코드를 부를 수 있고 Kotlin에서 Java 코드를 부를 수 있음 JVM(Java Virtual Machine) Java Bytecode를 각각의 OS에서 실행시키기 위한 장치 Compilation, Interpretation의 조합 Compilation : 자바 혹은 코틀린을 Java bytecode로 컴파일 해 줌 Interpretation : Java bytecode를 이해하고 각각의 OS로 번역함 [참고] Compilation C프로그램을 기계어로 컴파일 하는 것 항상 Interpretation보다..

LIST