JAVA 시작하기 - 함수와 메서드

Big Jay·2023년 8월 3일
0

Java 시작하기

목록 보기
11/14
post-thumbnail

메서드(Method)

함수(Function)의 한 종류로 다른 언어에서는 보통 함수라고 표현하지만 java에서는 method 한다.

함수

  • 하나의 기능을 수행하는 일련의 코드
  • 구현된(정의된) 함수는 호출하여 사용하고 호출된 함수는 기능이 끝나면 제어가 return(반환)된다.
  • 함수로 구현된 하나의 기능은 여러 곳에 동일한 방식으로 호출되어 사용할 수 있다.

고객이 자판기에 넣은 금액으로 상품 구매가 가능한지 비교한다.
이 때 고객이 넣은 금액은 매번 다를 것이고 구매하는 상품의 금액도 매번 다를 것이다. 이를 비교하는 코드를 작성하고 사용자 금액과 구매 상품의 값을 전달 받아 비교한 후 구매 가능 여부를 알려준다.

함수 정의하기

함수를 정의하는 것은 아래와 같다

// 순서대로
// [함수가 반환하는 타입][함수명](첫번째 인자, 두번쨰 인자) 
Boolean comparison(int userPay, int ProductPay){
	// 수행할 코드 작성
	Boolean result;
    if(userPay < productPay){
    	result = false;
    } else {
        result = true;
    }
    return result; // Boolean 형태의 결과값을 반환한다.
}
  1. 처음엔 함수가 반환하는 결과의 타입을 적는다(반환이 없으면 void)
    Boolean은 함수명 comparison이 실행을 완료수 반환하는 값의 타입을 뜻한다.
  2. 원하는 함수명을 입력한다.
  3. (첫번째 인자, 두번째 인자, ...) 는 함수가 실행되는데 필요한 값을 받는 매개변수를 뜻한다.
  4. {안에는 작동하는 코드를 작성한다.}

함수 호출 및 값 반환

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)이라 한다.

스택(Stack)

함수가 호출될 때 지역 변수들이 사용하는 메모리로 comparison 함수를 호출하면서 메모리를 생성하는 과정

함수가 호출되면 그 함수가 사용할 메모리 공간이 스택에 생성된다.
프로그램이 시작하면 main()에 포함된 변수들이 저장될 메모리 공간이 생성되며, comparison()를 호출하여 다음 스택에 등록된다.

즉, 호출되는 함수 순서대로 차곡차곡 위로 쌓이며, 위에서 부터 하나씩 수행되어 사라진다. (메모리 해제)

함수의 장점

  1. 기능을 나누어 코드를 효율적으로 구현할 수 있다.
  2. 기능별로 구현했을 때 같은 기능을 언제든지 다시 사용할 수 있다.

참고

  • do it! 자바프로그래밍 입문
profile
안녕하세요.

1개의 댓글

comment-user-thumbnail
2023년 8월 3일

유익한 자료 감사합니다.

답글 달기