상속관계
오버라이딩
- 상속받은 부모 클래스의 정보(프로퍼티)나 행위(메소드)를 재설계할 수 있어요
- 주로 부모 클래스의 행위(메소드)를 재설계해요
- 이러한 행위를 오버라이딩 (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 |