본문 바로가기
백엔드 과정(2023)

코틀린 3주차-2

by Enzo.enzo 2023. 12. 13.

상속관계

오버라이딩

  • 상속받은 부모 클래스의 정보(프로퍼티)나 행위(메소드)를 재설계할 수 있어요
  • 주로 부모 클래스의 행위(메소드)를 재설계해요
  • 이러한 행위를 오버라이딩 (Overriding)이라고 해요

오버로딩

  • 매개변수의 갯수를 다르게하면 동일한 이름으로 메소드를 만들 수 있어요
  • 매개변수의 자료형을 다르게하면 동일한 이름으로 메소드를 만들 수 있어요
  • 반환자료형(반환형)은 오버로딩에 영향을 주지 않아요

level3 최종

더보기
class Calculator {
    fun add(num1: Double, num2: Double): Double {
        return num1 + num2
    }

    fun subtract(num1: Double, num2: Double): Double {
        return num1 - num2
    }

    fun multiply(num1: Double, num2: Double): Double {
        return num1 * num2
    }

    fun divide(num1: Double, num2: Double): Double {
        if (num2 != 0.0) {
            return num1 / num2
        } else {
            throw ArithmeticException("Error: 나누는 수는 0이 될 수 없습니다.")
        }
    }
}

fun main() {
    val calculator = Calculator()

    while (true) {
        println("간단한 계산기 프로그램입니다.")
        println("지원하는 연산: +, -, *, /")
        println("프로그램을 종료하려면 'exit'을 입력하세요.")

        print("첫 번째 숫자를 입력하세요: ")
        val num1Input = readLine()

        if (num1Input == "exit") {
            break
        } else {
            val num1 = num1Input?.toDoubleOrNull()

            if (num1 == null) {
                println("잘못된 입력입니다. 숫자를 입력하세요.")
                continue
            }

            print("연산자를 입력하세요: ")
            val operator = readLine()

            print("두 번째 숫자를 입력하세요: ")
            val num2Input = readLine()
            val num2 = num2Input?.toDoubleOrNull()

            if (num2 == null) {
                println("잘못된 입력입니다. 숫자를 입력하세요.")
                continue
            }

            try {
                val result = when (operator) {
                    "+" -> calculator.add(num1, num2)
                    "-" -> calculator.subtract(num1, num2)
                    "*" -> calculator.multiply(num1, num2)
                    "/" -> calculator.divide(num1, num2)
                    else -> throw IllegalArgumentException("Error: 지원하지 않는 연산자입니다.")
                }

                println("결과: $result")
            } catch (e: Exception) {
                println("오류 발생: ${e.message}")
            }
        }
    }

    println("프로그램을 종료합니다.")
}
class Calculator {
    fun add(num1: Double, num2: Double): Double {
        return num1 + num2
    }

    fun subtract(num1: Double, num2: Double): Double {
        return num1 - num2
    }

    fun multiply(num1: Double, num2: Double): Double {
        return num1 * num2
    }

    fun divide(num1: Double, num2: Double): Double {
        if (num2 != 0.0) {
            return num1 / num2
        } else {
            throw ArithmeticException("Error: 나누는 수는 0이 될 수 없습니다.")
        }
    }
}

fun main() {
    val calculator = Calculator()

    while (true) {
        println("간단한 계산기 프로그램입니다.")
        println("지원하는 연산: +, -, *, /")
        println("프로그램을 종료하려면 'exit'을 입력하세요.")

        print("첫 번째 숫자를 입력하세요: ")
        val num1Input = readLine()

        if (num1Input == "exit") {
            break
        } else {
            val num1 = num1Input?.toDoubleOrNull()

            if (num1 == null) {
                println("잘못된 입력입니다. 숫자를 입력하세요.")
                continue
            }

            print("연산자를 입력하세요: ")
            val operator = readLine()

            print("두 번째 숫자를 입력하세요: ")
            val num2Input = readLine()
            val num2 = num2Input?.toDoubleOrNull()

            if (num2 == null) {
                println("잘못된 입력입니다. 숫자를 입력하세요.")
                continue
            }

            try {
                val result = when (operator) {
                    "+" -> calculator.add(num1, num2)
                    "-" -> calculator.subtract(num1, num2)
                    "*" -> calculator.multiply(num1, num2)
                    "/" -> calculator.divide(num1, num2)
                    else -> throw IllegalArgumentException("Error: 지원하지 않는 연산자입니다.")
                }

                println("결과: $result")
            } catch (e: Exception) {
                println("오류 발생: ${e.message}")
            }
        }
    }

    println("프로그램을 종료합니다.")
}

 

'백엔드 과정(2023)' 카테고리의 다른 글

코틀린 4주차--2  (0) 2023.12.21
코틀린 4주차  (1) 2023.12.21
코틀린 3주차  (1) 2023.12.10
코틀린 2주차 -2  (1) 2023.12.08
코틀린 2주차  (2) 2023.12.08