Information Security

[환경을 바꾸는 소프트웨어] 코틀린-1 본문

STUDY/Project

[환경을 바꾸는 소프트웨어] 코틀린-1

sohexz 2021. 9. 7. 17:41

변수와 데이터 형식

fun main() {
    var a : String = "슈먼이"
    var b : Int = 20201231
    var c : Int = 22
    var d : Char = 'S'
    println(a)
    println(b)
    println(c)
    println(d)
}

 

조건문: if, when

fun main() {
    var count: Int = 85
    if (count >= 90) {
        println("if문: 합격(장학생)")
    } else if (count >= 60) {
        println("if문 : 합격")
    } else {
        println("if문: 불합격")
    }

    var jumsu:Int =(count/10)*10
    when(jumsu){
        100->println("when문: 합격(장학생)")
        90->println("when문:합격(장학생)")
        // in 90..100->println("when문: 합격(장학생)")
        80,70,60->println("when문:합격")
        //in 60..89->println("when문: 합격")
        else->println("when문:불합격")
    }
}

fun main() {
    var count:Int =80
    when(count){
        in 91..100->println("A")
        in 81..90->println("B")
        in 71..80->println("C")
        in 51..70->println("D")
        in 31..50->println("E")
        else->println("F")
    }
}

--- 20210907/23:30 --- chap03 ---

 

배열

일차원 배열 선언 형식 : Array(), arrayOf(), arrayOfNullls()

 arrayOfNulls()는 빈배열로 선언

 

반복문: for,while

fun main() {
    var two =Array<IntArray>(3,{IntArray(4)})

    var value: Int = 100
    for(i in 0..2 step 1){
        for (j in 0..2 step 1){
            two[i][j]=value
            value+=10
            println("two[$i][$j]:$value")
        }
    }
}

** 값 가져올 때 $ 써야 함

 

함수

 

클래스

변수(필드)와 메소드로 구성

 객체지향 관점에서의 클래스 : 실세계의 객체들이 가질 수 있는 상태와 행동

 메소드 오버로딩(overloading)

 한 클래스 내에서 메소드의 이름이 같아도 파라미터의 개수나 데이터 형식만 다르면 여러 개를 선언할 수 있음

 

클래스 상속

추상 클래스

 추상 클래스는 인스턴스 생성 불가

 추상 클래스는 클래스 앞에 abstract 키워드를 붙여서 지정함

 인스턴스화란

추상 메소드

 본체가 없는 메소드

 메소드 앞에 abstract 키워드를 붙여서 지정 • 추상 메소드를 포함하는 클래스는 추상 클래스로 지정해야 함

 

인터페이스

 추상 클래스와 성격이 비슷함

 interface 키워드를 사용하여 정의하고 내부에는 추상 메소드를 선언함

 클래스에서 인터페이스를 받아 완성할 때 상속과 마찬가지로 ‘ : 인터페이스 이름’ 형식을 사용함

 인터페이스는 ‘상속받는다’고 하지 않고 ‘구현한다’고 함

 Kotlin은 다중 상속을 지원하지 않음 • 대신 인터페이스를 사용하여 다중 상속과 비슷하게 작성할 수 있음