본문 바로가기
Kotlin

Kotlin #1 : 기본 설정, 기초문법 230210

by haheehee 2023. 2. 10.

 

++ 코틀린 ++

- 코틀린은 젯브레인스(JetBrains)에서 오픈소스 그룹을 만들어 개발한 프로그래밍 언어

- 2017년 구글에서 안드로이드 공식 언어로 지정

- JVM에 기반을 둔 언어

 

- 최신 언어 기법을 이용 -> 훨씬 간결한 구문으로 프로그램을 작성 가능

- 코틀린은 null safety을 지원하는 언어

- 코틀린은 자바와 100% 호환

- 코루틴coroutines이라는 기법을 이용하면 비동기 프로그래밍을 간소화할 수 있음

 

==> 자바언어에서 정말 간략화되었다!

 

 


실습 #1

 

초기화면.

 

empty로 선택해서 프로젝트 생성

프로젝트 이름은 Test로 했고, 언어는 Kotlin으로 설정했다.

 

자파 패키지 - 오른쪽 마우스(우클릭) - New - Kotlin Class/File

 

Test 입력하고 엔터

 

생성된 Test 파일에 

 

코드 입력

클래스는 따로 명시하지 않아도 괜찮다.

 

package com.example.test

fun main() {
    println("hello world")
}

해당 파일 (Test.kt) 우클릭 - Run 'TestKt' 

하면 밑에 hello world가 뜰 수 있다.

 

위의 초록색 화살표

실행된 모습

 

 


- 테스트할 코틀린 소스 파일에는 main() 함수가 있어야함

- 실행하면 main() 함수가 자동으로 실행됐다가 끝나면 프로그램 종료

실습 #2

 

 

 

package com.example.test

import java.util.*

fun main() {
    println("hello world")
    data = 20
    println(formatData(Date()))
    User().sayHello()
}

Test.kt

 

package com.example.test

import java.text.SimpleDateFormat
import java.util.*

var data = 10

fun formatData(date: Date): String {
    val sdformat = SimpleDateFormat("yyyy-MM-dd")
    return sdformat.format(date)
}
class User {
    var name = "hello"

    fun sayHello() {
        println("name: $name")
    }
}

User.kt

 

-- 결과 --

변수 선언형은 var

상수 선언형은 val

 

함수 선언시 

fun 함수명(파라미터명: 파라미터변수형): 함수리턴형 {...}

 

클래스의 함수를 사용할때 호출하는 방법

클래스명().사용할함수명()

클래스명뒤에 괄호를 넣어주어야한다.

 

 

main문에서 날짜관련문을 println()안에 넣어주었고, 

yyyy-MM-dd로 바꿔줌

 


변수 옆에 :자료형 을 넣으면

변수가 지정형으로 바뀌어 해당 자료형의 변수만 넣을 수 있다.

 

상수는 꼭 처음 선언시 초기화를 완료해주어야한다.

 

타입 지정과 타입 추론

변수명 뒤에는 콜론(:)을 추가해 타입을 명시
대입하는 값에 따라 타입을 유추(타입 추론)할 수 있을 때는 생략

 

초기화 미루기

- lateinit키워드 : 이후에 초기값을 할당할것이다 명시적으로 선언

- lateinit은 var 키워드로 선언한 변수에만 사용가능

(Int, Long, Short, Double, Float, Boolean, Byte 타입에는 사용할 수 없음)

 

package com.example.p7

//lateinit var data1: Int
//lateinit val data2: String
lateinit var data3:String

val data44: Int by lazy {
    println("in lazy........")
    10
}

fun main() {
    println("in main.......")
    println(data44 + 10)
    println(data44 + 10)
}

LateinitEx.kt


코틀린은 null 사용가능하지만 따로 공간을 설정해주어야한다. 

var data2: Int? = null 이런식으로

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

댓글