Class

    [Kotlin] enum class란 무엇인가?

    목표 enum class가 무엇인지 이해한다. enum class가 사용되어야 하는 곳을 이해한다. enum class를 왜 사용해야 하는가? 변수의 상태 별로 다른 결과값을 출력하는 코드를 짜야한다면 어떻게 짜야할까? 직관적으로 떠오르는 방법은 변수의 상태를 상수로 정의한다음 상태 별로 동작을 정의하는 것이다. 예를 들어 Task라는 작업 단위가 있고 해당 작업 단위의 상태값이 state를 출력해주는 클래스를 설계한다고 해보자. 그러면 해당 클래스는 아래와 같이 만들어질 수 있다. class Task { var state: Int = WAITING fun printState() = when (state) { WAITING -> println("Waiting..") PROCESSING -> println..

    Kotlin의 가시성 변경자(접근 제한자) : public, internal, protected, private

    목적 최상위 선언의 가시성 변경자에 대해 이해한다. 클래스 멤버의 가시성 변경자에 대해 이해한다. 가시성 변경자 가시성 변경자는 클래스에 대한 외부 접근 권한을 제어한다. Kotlin에서는 4가지 가시성 변경자를 제공한다. public internal protected private Kotlin에서는 최상위 선언에서의 가시성 변경자와 클래스 멤버 선언에서의 가시성 변경자의 접근성이 달라진다. 먼저 공통적으로 적용되는 가시성 변경자인 public에 대해 알아보자. public public은 기본 가시성 변경자로, 어디에서나 접근 가능한 가시성 변경자이다. Kotlin에서는 아무것도 쓰지 않을 때 public이 기본 가시성 변경자로 설정된다. 이는 가시성 변경자를 쓰지 않을 때 default라는 별도의 가시..

    [알고리즘] Intellij에서 Kotlin 코드를 돌리는 두가지 방법 : Class, Scratch

    개요 코딩 테스트에서는 코틀린을 선택할 때 가장 대표적으로 아래 두가지 형태로 정답을 작성하도록 합니다. Solution Class 안에 solution function이 있는 형태 class Solution { fun solution(string: String): String { return string } } solution function만 있는 형태 fun solution(string: String): String { return string } 이런 두 경우 Intellij에서 코딩 테스트를 풀기위한 환경을 어떻게 세팅하는지 살펴봅시다. 기초 지식 먼저 코틀린 내부에서는 하나의 파일 안에 여러개의 클래스(class)와 함수(fun)가 최상위 계층에 작성될 수 있다는 것을 알아야 합니다. 이것이 ..