///////
Search
🐳

함수와 메소드 - 황준하

함수(메소드)

함수는 입력을 받아서 처리를 하고 결과를 반환하는 가상적인 상자와 같습니다.

매개변수(파라미터)와 인수

매개변수 : 함수를 호출할 때 인수로 전달된 값을 함수 내부에서 사용할 수 있게 해주는
변수입니다.

함수 사용 장점

public static void main(String[] args) { "멍멍이"를 데려온다. "사료"를 준다. "멍멍이"를 놓아준다. "야옹이"를 데려온다. "생선"을 준다. "야옹이"를 놓아준다. "꼬꼬댁"을 데려온다. "곡물"을 준다. "꼬꼬댁"을 놓아준다. }
Java
복사
함수를 사용하는 가장 큰 이유는 바로 반복적인 프로그래밍을 피할 수 있기 때문입니다. 다음과 같이 특정 행동을 반복해야 하는 경우 함수를 통해서 가독성이 좋은 코드를 만들 수 있습니다.
public static void main(String[] args) { 밥주기("멍멍이, 사료"); 밥주기("야옹이, 생선"); 밥주기("꼬꼬댁, 곡물"); }
Java
복사
프로그램이 필요할 때마다 작성한 함수를 호출하면 해당 작업을 반복해서 수행할 수 있습니다.

함수 관련 예제

파라미터가 여러개일 경우

상황에 따라서 입력 받는 값의 개수가 달라질 수 있는 경우가 발생합니다.
함수 호출 시 매개변수의 개수가 다르면 컴파일 오류가 발생합니다.

함수의 메모리 할당

함수가 소스코드로 작성되면 다른 참조형 변수와 마찬가지로 4Byte 크기의 메모리가
할당됩니다.

기타 수업중 나왔던 질문

함수는 항상 함수를 호출하는 부분보다 아래에 있어야 하나요?
= 자바는 컴파일러를 사용하기에 함수 선언부와 호출부의 위치는 상관없습니다.
함수 사용 후 변수가 메모리 내에서 삭제된다고 하셨는데 그러면 그만큼의 메모리이득을 볼 수 있는 건가요?
= 함수로 따로 구동할 경우 '함수 호출 직후'에는 오히려 메모리 이득을 보기 어렵습니다만 자바의 가비지 컬렉터(GC)가 알아서 메모리를 관리해주기도 하고, 컴파일 시 최적화해주기에 큰 차이는 없습니다. 다만 위와 같은 특정 코드 반복 시에는 함수 생성 및 호출이 많은 장점을 가져다준다고 생각해주시면 되겠습니다.