Android 앱/Kotlin Language 11

kotlin 코틀린 - 고차함수, 람다함수, 익명함수

고차함수 (High Order Function) 고차함수란 파라미터 또는 반환값으로 또 다른 함수가 사용되는 함수를 말합니다. 설명은 어렵지만 이해 하면 고차함수 자체는 어려운 내용이 없습니다. 함수를 변수처럼 입력으로 받을 수 있고 출력으로 사용 하는 함수 를 이르는 것일 뿐이니까요 fun add(num1:Int, num2:Int): Int { return num1 + num2 } fun sub(num1:Int, num2:Int): Int { return num1 - num2 } fun calc(func:(Int,Int)->Int, num1: Int, num2: Int) { var ret = func(num1, num2) println("Result $ret") } fun main(){ calc(::a..

kotlin 코틀린 - package scope 접근제한자

package 패키지는 소스코드 파일 첫줄에 선언해 주시면 됩니다. package com.tistory.arvigoes.testPackage 패키지의 이름은 마음대로 지으셔도 상관 없으나 만약 라이브러리화 해서 배포까지 염두에 둔다면 다른 모듈과의 충돌을 피하기위해 위와 같은 형태로 이름을 선언하시는게 유리 합니다. 많이들 사용하는 방식으로 회사(개인)의 메인 역순으로 순서대로 사용하고 마지막에 패키지의 용도 또는 식별가능한 의미있는 단어를 사용합니다. 만약 패키지 선언부가 없다면 kotilin은 이 파일을 default 패키지에 자동으로 포함됩니다. 이름충돌등이 발생할 수 있어 가능하면 패키지 이름을 지정하는 것이 좋습니다. import 이미 만들어둔 패키지나, 외부모듈의 패키지를 가져와 포함 시키는 ..

kotlin 코틀린 - 클래스 상속(inheritance), 추상화(abstract), interface

상속(inheritance) 상속은 객체 지향 프로그래밍을 구성하는 중요한 특징 중 하나입니다. 상속을 통해 코드 재활용성을 제공하고, 클래스 간의 계층적 관계를 구성하여 다형성의 토대를 마련 합니다. 실제 주변에서 상속이 어떤 개념으로 사용되는지 한번 알아 볼까요? 이전까지 Dog 라는 클래스를 만들었습니다. 개(Dog)와 고양이(Cat)는 동물(Animal)이라는 속성을 상속 받고 있습니다. 그리고 진돗개, 삽살개, 등은 개 라는 속성을 상속 받고 있습니다. 이걸 코드로 한번 표현해 보도록 하겠습니다. open class Animal(var name:String, var owner:String, var type:String) { fun nameTag() { println("Type:${type}, n..

kotlin 코틀린 - class 클래스

클래스 기초 기본자료형 Char, Byte, Short, Int, Long 등도 코틀린 내부에서 제공하는 클래스 클래스는 고유의 값을 담는 변수인 속성 (attribute) 과 기능을 구현한 함수 (function) 으로 이루어져 있습니다. 클래스는 instance 를 만드는 틀입니다. 우리가 기본자료형 Int, Long 등을 사용할때 Int 를 직접 사용하지 않았습니다. var number : Int = 0 이렇게 변수를 만들어 사용하였습니다. 이 변수가 클래스의 인스턴스라고 생각하시면 이해가 쉽습니다. var number2 :Int = 1 추가로 변수를 선언한다면 number 와 number2 는 같은 클래스 이지만 다른 값을 가지는 instance 입니다. 이제 Kotlin 에서 클래스를 만들어 보..

kotlin 코틀린 - 반복문

증감연산자 증가연산자 ++ 변수의 앞이나 뒤에 ++ 을 붙여서 사용하는 연산자입니다. ++ 이 변수 앞에 붙으면 전치 증가연산자, 변수의 뒤에 붙으면 후치 증가연산자 입니다. 정수형 변수의 경우 값을 1 증가시켜주는 역활을 합니다. var number = 10 ++number number = number + 1 number++ 결과적으로 보면 위 3가지는 동일한 결과 입니다. 그러면 왜 전치와 후치 증가 연산자로 구분이 될까요? 그 차이는 아래 코드를 보면서 설명 하도록 하겠습니다. fun main() { var numberPre = 10 var numberPost = 10 println(++numberPre) println(numberPost++) println(numberPre) println(num..

kotlin 코틀린 - 조건문 비교연산자

if 조건문 fun main() { var number = 5 if(number > 10) { println("10 보다 크다") } else { println("10 보다 작다") } } if ( 조건 ) { // 저건이 true 일 경우 실행할 구문 영역 } else { // 조건이 false 일 경우 실행할 구문 영역 } 실행할 구문이 여러개가 될 수도 있기 때문에 각각의 영역을 구분하여 실행하기 위해, 중괄호( {} ) 를 사용하여 실행할 영역을 구분합니다. 함수의 영역표시에 사용되는 중괄호와 동일한 특성을 지닙니다. 여기에서 true 일 경우에만 실행할 내용이 있고 조건이 false 일 경우 수행할 내용이 없다면, esle 구문은 생략 가능 하빈다. fun main() { var number =..

kotlin 코틀린 - 함수 function

함수 function 함수는 특정한 동작을 하거나 원하는 결과값을 연산하는데 사용하는 기능입니다. 지금까지 작업하는데 사용했던 main() 도 함수 이고, println() 또한 함수 입니다. 간단한 곱셈함수(mul) 를 만들어 보겠습니다. 함수를 선언하기 위해서는 변수를 선언할때 사용한 var, val 처럼 함수(function) 을 의미하는 키워드 fun 을 사용해야 합니다. fun mul(numA:Int, numB:Int): Int { return numA * numB } fun main() { println(mul(3, 5)) } 결과를 한번 확인해 보도록 하겠습니다. main에서 호출도 잘 되네요 함수를 만들어 봤으니 이제 함수를 선언할때 사용한 코드를 한번 자세히 보도록 하겠습니다. fun 키..

kotlin 코틀린 - 변수와 자료형

변수와 자료형 이번 장에서는 프로그래밍의 기본인 변수와 자료형에 대해 알아보도록 하겠습니다. 변수는 말 그대로 변하는 수 입니다. 특정한 형식을 가진 값을 저장하는 공간을 의미 합니다. 변수의 이름은 이공간을 지칭하는 것 입니다. 자료형은 변수의 모양을 나타내느 말입니다. 변수가 특정한 형식(자료형) 으로 공간을 가지는 것 입니다. 변수의 선언 var(mutable:가변) -일반적으로 통용되는 변수 - 언제든지 읽기 쓰기가 가능 val(immutalble : 불변) - 선언시에만 초기화 가능 - 중간에 값을 변경할 수 없다 보통은 var 형태의 변수를 많이 사용하고 val 은 실행중에 변화되어서는 안되는 값을 저장할때 많이 사용 합니다. 선언위치에 따라서 클래스에 선언된 변수는 property (속성)이..

kotlin 첫프로젝트 - IntelliJ IDEA 프로젝트 만들기

이번에는 IntelliJ IDEA 에서 첫 프로젝트를 만들어 보도록 하겠습니다. 프로젝트만 만들면 머 절반이죠 .....; Create New Project 를 선택합니다. JVM 기반의 Kotlin 을 선택 합니다. 가장 기본이라 생각 하시면 됩니다. 선택 하시고 Next 로 다음 단계로 넘어 가도록 합니다. Project Location 은 적당히 선택 하시면 됩니다. 프로젝트 이름도 마음에 안드신다면 변경 하셔두 됩니다. 적당히 선택 하셨으면 Finish 로 완료! 프로젝트를 생성했으니 이제 Hello World 를 작성 해 보도록 합니다. 우선 프로그램의 EntryPoint 인 Main 을 작성하기 위해 kotlin 파일을 추가 하도록 합니다. app.kt 를 추가 했지만 원하시는 다른 이름으로 ..

Kotlin 개발환경 - IntelliJ IDEA 설치

오늘은 Kotlin 용 개발툴 IntelliJ IDEA 를 설치해 보겠습니다. IntelliJ IDEA 는 kotlin 이외에 java, Gloovy, Scala 등 다른 언어등을 개발 할 수 있는 통합 개발도구 입니다. https://www.jetbrains.com/ko-kr/idea/download/#section=windows Download IntelliJ IDEA: The Java IDE for Professional Developers by JetBrains Download the latest version of IntelliJ IDEA for Windows, macOS or Linux. www.jetbrains.com 우선은 kotlin 을 이제 시작 하는거라 Community 버젼으로 설치..