Java/Java 올인원 패키지
2. 함수와 메서드
GrapeMilk
2020. 3. 13. 12:40
Goal
- 함수의 정의와 구현 방법을 알아본다
- 함수와 메서드의 차이를 알아본다.
- 스택 메모리에서 메서드가 실행되는 구조를 알아본다.
1. 함수 (function)
- 하나의 기능을 수행하는 일련의 코드
- 함수는 호출하여 사용하고 기능이 수행된 후 값을 반환 할 수 있음
- 함수로 구현된 기능은 여러 곳에서 호출되어 사용될 수 있음
2. 함수 정의 하기
- 함수는 이름, 매개변수, 반환 값, 함수 몸체(body)로 구성 됨.
- 함수는 매개변수와 반환 값이 없는 경우도 있음. 반환 값이 없는 경우에는 함수 이름 앞에 void를 선언해야 함.
int add (int a, int b) {
int result = 0;
result = a + b;
return result;
}
3. 함수 구현 예제
- 반환값과 매개변수의 유무에 따른 함수 구현
package classpart;
public class FunctionTest {
// 반환값 + 매개변수 둘다 존재
public static int addNum (int num1, int num2) {
int result;
result = num1 + num2;
return result;
}
// 반환값이 없는 메서드
public static void sayHello(String greeting) {
System.out.println(greeting);
}
// 매개변수가 없는 메서드
public static int calcSum() {
int sum = 0;
int i;
for (i = 0; i <= 100; i++) {
sum += i;
}
return sum;
}
public static void main(String[] args) {
int n1 = 10;
int n2 = 20;
// 함수는 호출을 해야 사용할 수 있음
int total = addNum(n1, n2);
//String hello = sayHello("Hello");
//sayHello는 반환값이 없는 함수이기 때문에 변수로 값을 받을 수 없음.
int num = calcSum();
sayHello("Hello");
System.out.println(total);
System.out.println(num);
}
}
4. 메서드 (Method)
- 객체의 기능을 구현하기 위해 클래스 내부에 구현되는 함수
- 메서드를 구현함으로써 객체의 기능이 구현 됨
- 메서드의 이름은 사용하는 쪽(클라이언트 코드)에 맞게 명명하는 것이 좋음.
ex) getStudentName() (camel notation)
5. 메서드와 메모리
- 함수를 호출하면, 함수에서 사용하는 메모리는 stack메모리 인데
- stack은 짐이 쌓여있는 형식으로 선입후출이다