Kotlin - Function, Variable and Class

개인 공부 후 자료를 남기기 위한 목적임으로 내용 상에 큰 문제가 있을 수도 있습니다.
잘못된 내용이 있다면 언제든지 편하게 댓글 남겨주시면 감사하겠습니다.

Function 이해하기

  • 2자리 숫자 사이에서 최대 값을 찾는다.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    fun max2Numbers(a: Int, b: Int): Int {
    return if (a > b) a else b
    }

    //단순화 된 방식으로 위의 기능을 다시 정의
    fun max2Numbers(a: Int, b: Int): Int = if (a > b) a else b

    fun main(args: Array<String>) {
    println("최대 값은 : ${max2Numbers(1000, 100)}")
  • 최대 값은 : 1000


Variable 이해하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//Mutable reference
var a = 100L // Long
//Immutable reference
val b = 0.1F // Float

//변수를 명시적으로 선언하기
var a: Int = 10
var char: Char = 'C'
var string: String = "Demo"

//Multi lines String
var string: String = """
첫번 째 라인
두번 째 라인
세번 째 라인
"""

//Array
var arrayNumber: IntArray = intArrayOf(1, 2, 3, 4, 5, 6, 7, 8, 9)
var arrayLong: LongArray = longArrayOf(1000L, 2000L, 3000L, 4000L)
var arrayFloat: FloatArray = floatArrayOf(0.1f, 0.2f, 0.3f, 0.4f)
var arrayDouble: DoubleArray = doubleArrayOf(0.1, 0.2, 0.3, 0.4)

클래스와 속성 이해하기

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
//Java class
public class Person {
private String name;
private int age;
private boolean gender; // 0은 여자, 1은 남자

public Person() {}

public Person(String name, int age, boolean gender) {
this.name = name;
this.age = age;
this.gender = gender;
}

public String getName() { return name; }

public void setName(String name) { this.name = name; }

public int getAge() { return age; }

public void setAge(int age) { this.age = age; }

public boolean isGender() { return gender; }

public void setGender(boolean gender) { this.gender = gender; }
}
  • 2개의 생성자, 3개의 Properties와 Setter/Getter… 늘 이런식으로 클래스를 만들어야만 했다.
  • Kotlin은 정말 심플하게 클래스를 정의할 수 있다.
  • 단 1줄 이면 가능하다.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    // Kotlin class
    class Person(var name: String, var age: Int, var gender: Boolean)

    fun main(args: Array<String>) {
    var person = Person("Mozz", 28, false)
    println("Before")
    println("Person.Person 이름 : ${person.name}")
    println("Person.Person 나이 : ${person.age}")
    println("Person.Person 성별 : ${person.gender}")

    println()

    person = Person("Mily", 18, true)
    println("After...")
    person.age = 10
    person.name = "Mily"
    person.gender = true
    println("Person.Person 이름 : ${person.name}")
    println("Person.Person 나이 : ${person.age}")
    println("Person.Person 성별 : ${person.gender}")
    }
  • 예제 만들기

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class Rectangle(val height: Int, val width: Int) {
    val isRectangle: Boolean
    get() = height == width
    }

    import java.util.Random

    fun main(args: Array<String>) {
    val random = Random()
    val rectangle = Rectangle(random.nextInt(), random.nextInt())
    println("높이? ${rectangle.height}")
    println("넓이? ${rectangle.width}")
    println("직사각형? ${rectangle.isRectangle}")
    }
  • 높이? 1009213259

  • 넓이? -259066241
  • 동그라미? false (직사각형이 될 일이 있을까?)

오늘은 여기까지…….

Share