Java & Kotlin
[Java 객체지향] 함수와 메소드
Sue
2022. 1. 24. 18:00
함수
- 기능을 구현하기 위한 일련의 코드 집합
- 함수로 구현된 기능은 여러 곳에서 호출되어 사용될 수 있다.
- 기능을 함수로 구현하지 않았을 경우, 오류 발생 시 코드를 일일히 수정해야하는 번거로움이 발생할 수 있다.
- 함수는 이름, 매개변수, 몸체(body), 반환값으로 구성된다.
- 함수 이름 앞 타입은 반환값 타입. 반환값이 없다면 void
함수 예제
package ch02;
public class FunctionEx {
// 두 수를 입력받아 합을 구해 값을 반환하는 함수
public static int add(int num1, int num2) {
int result;
result = num1 + num2;
return result;
}
// 0부터 100까지 정수 값의 합을 구해 출력하는 함수
public static int calculSum() {
int sum = 0;
for (int i = 0; i <= 100; i++) {
sum += i;
}
return sum;
}
// 인사말을 입력받아 출력하는 함수
public static void sayHello(String greeting) {
System.out.println(greeting);
}
public static void main(String[] args) {
int n1 = 10;
int n2 = 20;
int total = add(n1,n2);
System.out.println(total);
total = calculSum();
System.out.println(total);
sayHello("안녕하세요");
}
}
수행 결과
30
5050
안녕하세요
스택 메모리
: 함수가 호출될 때 지역 변수들이 사용하는 메모리 공간이다.
- 메인 함수가 사용할 공간(n1, n2, total)이 생성된다.
- add() 함수가 사용할 공간(num1,num2, result)이 생성된다.
- add() 함수 수행이 완료되면 add() 함수가 사용한 메모리 공간은 해제된다.
메서드
- vs 함수 : 함수는 단독 모듈로 어딘가 속해 있는 것이 아닌 반면, 메서드는 클래스 내부에 속해 객체의 기능을 구현하기 위해 생성된 함수이다.
- 멤버 함수라고도 함 (C++, 자바에서는 메서드라는 용어가 많이 사용)
- 메서드의 이름은 그 객체를 사용(호출)하는 객체의 입장에서 짓는 것이 좋다 e.g. getStudentName()