7/31(월) 팀 발표 내용
팀원 : 코드비타민
발표자 : 여효진
함수 오버로딩이란?
→ 같은 함수의 이름을 가지고 있지만 파라미터(매개변수) 및 리턴 타입 등의 특징이 다른 여러 개의 함수를 만드는 것
즉, 함수 중복 정의를 뜻함
함수 오버로딩이 필요한 이유
But, 너무 많이 함수를 오버로딩 할 경우 코드가 복잡해지며 어떤 오버로드 함수가 호출되었는지 알기 힘들어진다
함수 오버로딩의 규칙
#샘플코드
fun main() {
//매개변수 수가 다른 sum함수 2개 불러옴
sum(3, 7)
sum(3, 5, 7)
}
//매개변수가 2개인 2개를 더하는 sum
fun sum(x:Int, y:Int){
println(x+y)
}
//매개변수가 3개인 3개를 더하는 sum
fun sum(x:Int, y:Int, z:Int){
println(x+y+z)
}
//결과:
10
15
#오버로딩은 리턴 값이 다른 것 만으로는 허용되지 않는다 . (매개 변수의 수나 타입이 달라야 함)
fun main() {
println(sum(3, 7))
println(sum(3, 7))
}
//매개 변수의 수는 같지만 리턴 타입이 다른 두 함수
fun sum(x:Int, y:Int):Int{
return x+y
}
fun sum(x:Int, y:Int):Double{
return (x+y).toDouble()
}
// 오류
#매개변수의 타입이 다른 경우 예시코드
fun main() {
println(sum(3, 7))
println(sum(3.0, 7.0))
}
//매개 변수의 타입도 다르고 리턴 타입도 다른 두 함수
fun sum(x:Int, y:Int):Int{
return x+y
}
fun sum(x:Double, y:Double):Double{
return x+y
}
//결과:
10
10.0
헉! (๑•̀ᄆ•́๑) 코드 비타민..!
이름 넘 잘 지은거 같아요٩( ᐛ )و
파이팅이에요!٩(๑•̀o•́๑)و