함수 (function)
하나의 기능을 수행하는 일련의 코드이다.
구현된(정의된) 함수는 호출하여 사용하고 호출된 함수는 기능이 끝나면 제어가 반환된다.
함수로 구현된 하나의 기능은 여러 곳에서 동일한 방식으로 호출되어서 사용될 수 있다.
함수 정의 방법
접근제어지시자 return데이터타입 함수명(매개변수1, ...){ // body
실행할 코드(기능);
return ...;
}
접근제어지시자
: 4가지 종류가 있는데 이후에 포스팅할 예정이다.
모든 패키지에서 접근이 가능한 public 이라는 지시자를 쓸 것이다.
return데이터타입
: return 으로 반환할 데이터타입이 정해져 있는 경우에 int, double, boolean 등과 같이 써주면 되지만,
출력함수로 반환하는 경우에는 void 라는 빈 값의 의미를 가지고 있는 명령어를 사용한다.
함수명
: 카멜표기법으로 addNum 과 같이 소문자로 시작해서 단어가 새로 시작되는 첫 알파벳을 대문자로 표기하는 방법으로 표기하고, 되도록이면 동사로 적도록 한다.
매개변수
: 함수 안에서 사용할 변수 중 입력받아야 하는 즉, 정보를 가져와야하는 변수를 데이터타입 변수명의 형태로 적어준다.
body
: { } 안의 영역을 지칭하는 말로, 함수의 몸체라는 의미를 가진다.
return
: 반환할 값
두 수를 더하는 add함수 정의
public calss FunctionTest{
// main 함수
public static void main(String[] args){
int sum = add(100, 20);
System.out.println(sum);
} // end of main
// add 함수 생성
public static int add(int num1, int num2){
int result;
result = num1 + num2;
return result;
}
} // end of class
함수 호출 과정
1. Run(실행) - 코드를 실행한다.
2. main 함수를 찾는다.
------stack 영역--------
3. main 함수가 사용할 메모리 공간이 stack에 생성된다.
4. main 함수에서 add() 함수를 호출한다.
5. add() 함수가 사용할 메모리 공간이 스택(stack)에 쌓인다.
6. add() 함수이 수행한 후 사용한 stack 메모리 공간은 자동으로 사라진다.
7. main 함수의 수행이 마칠 때 까지 main()의 공간은 유지되다가
8. main() 함수의 수행이 마치면 stack 메모리 공간도 해제된다.
* 스택 (stack) 메모리
: 함수가 호출될 때 지역 변수들이 사용하는 메모리로
함수의 수행이 끝나면 자동으로 반환되는 메모리이다.
'Back-End > Java' 카테고리의 다른 글
[Java] 인스턴스 (Instance), 힙(Heap) 메모리 (0) | 2021.08.26 |
---|---|
[Java] 메서드 Method (0) | 2021.08.26 |
[Java] 객체 지향 언어(OPP) - 객체, 클래스 (0) | 2021.08.23 |
[Java] continue 키워드 (0) | 2021.08.20 |
[Java] break 키워드 (0) | 2021.08.20 |