함수(메소드)
•
함수는 입력을 받아서 처리를 하고 결과를 반환하는 가상적인 상자와 같습니다.
매개변수(파라미터)와 인수
•
매개변수 : 함수를 호출할 때 인수로 전달된 값을 함수 내부에서 사용할 수 있게 해주는
변수입니다.
함수 사용 장점
public static void main(String[] args) {
"멍멍이"를 데려온다.
"사료"를 준다.
"멍멍이"를 놓아준다.
"야옹이"를 데려온다.
"생선"을 준다.
"야옹이"를 놓아준다.
"꼬꼬댁"을 데려온다.
"곡물"을 준다.
"꼬꼬댁"을 놓아준다.
}
Java
복사
•
함수를 사용하는 가장 큰 이유는 바로 반복적인 프로그래밍을 피할 수 있기 때문입니다. 다음과 같이 특정 행동을 반복해야 하는 경우 함수를 통해서 가독성이 좋은 코드를 만들 수 있습니다.
public static void main(String[] args) {
밥주기("멍멍이, 사료");
밥주기("야옹이, 생선");
밥주기("꼬꼬댁, 곡물");
}
Java
복사
•
프로그램이 필요할 때마다 작성한 함수를 호출하면 해당 작업을 반복해서 수행할 수 있습니다.
함수 관련 예제
파라미터가 여러개일 경우
•
상황에 따라서 입력 받는 값의 개수가 달라질 수 있는 경우가 발생합니다.
•
함수 호출 시 매개변수의 개수가 다르면 컴파일 오류가 발생합니다.
함수의 메모리 할당
•
함수가 소스코드로 작성되면 다른 참조형 변수와 마찬가지로 4Byte 크기의 메모리가
할당됩니다.
기타 수업중 나왔던 질문
•
함수는 항상 함수를 호출하는 부분보다 아래에 있어야 하나요?
= 자바는 컴파일러를 사용하기에 함수 선언부와 호출부의 위치는 상관없습니다.
•
함수 사용 후 변수가 메모리 내에서 삭제된다고 하셨는데 그러면 그만큼의 메모리이득을 볼 수 있는 건가요?
= 함수로 따로 구동할 경우 '함수 호출 직후'에는 오히려 메모리 이득을 보기 어렵습니다만 자바의 가비지 컬렉터(GC)가 알아서 메모리를 관리해주기도 하고, 컴파일 시 최적화해주기에 큰 차이는 없습니다. 다만 위와 같은 특정 코드 반복 시에는 함수 생성 및 호출이 많은 장점을 가져다준다고 생각해주시면 되겠습니다.