함수(Function)의 한 종류로 다른 언어에서는 보통 함수라고 표현하지만 java에서는 method
한다.
고객이 자판기에 넣은 금액으로 상품 구매가 가능한지 비교한다.
이 때 고객이 넣은 금액은 매번 다를 것이고 구매하는 상품의 금액도 매번 다를 것이다. 이를 비교하는 코드를 작성하고 사용자 금액과 구매 상품의 값을 전달 받아 비교한 후 구매 가능 여부를 알려준다.
함수를 정의하는 것은 아래와 같다
// 순서대로
// [함수가 반환하는 타입][함수명](첫번째 인자, 두번쨰 인자)
Boolean comparison(int userPay, int ProductPay){
// 수행할 코드 작성
Boolean result;
if(userPay < productPay){
result = false;
} else {
result = true;
}
return result; // Boolean 형태의 결과값을 반환한다.
}
package VendingMachine;
public class Comparison {
public static Boolean comparison(int userPay, int productPay){
Boolean result;
if(userPay < productPay){
result = false;
} else {
result = true;
}
// 결과 값 반환
return true;
}
public static void main(String[] args){
int userPay = 1000;
int productPay = 300;
// 함수 호출
// 매개변수로 userPay와 productPay를 전달한다.
Boolean test = comparison(userPay, productPay); // comparison 메소드가 실행된 후 비교값을 반환다. //true
if(test){
System.out.println("음료수가 나왔습니다.");
} else {
System.out.println("잔액이 부족합니다.");
}
}
}
함수 호출할 때 해당 함수만을 위한 메모리 공간이 할당 되는데, 이 메모리 공간을 스택(Stack)이라 한다.
함수가 호출될 때 지역 변수들이 사용하는 메모리로 comparison 함수를 호출하면서 메모리를 생성하는 과정
함수가 호출되면 그 함수가 사용할 메모리 공간이 스택에 생성된다.
프로그램이 시작하면 main()에 포함된 변수들이 저장될 메모리 공간이 생성되며, comparison()를 호출하여 다음 스택에 등록된다.
즉, 호출되는 함수 순서대로 차곡차곡 위로 쌓이며, 위에서 부터 하나씩 수행되어 사라진다. (메모리 해제)
유익한 자료 감사합니다.