- Do it! 자바 프로그래밍 입문 온라인 강의를 수강하며 작성하였습니다.
- Section 1. 자바의 핵심 - 객체지향 프로그래밍
- 10강 "클래스와 객체1(2)"
- 메서드 > 함수 정의하기 > 함수와 스택 메모리 > 클래스에 메서드 구현하기 > 함수의 목적
// 정의하는 방법
[함수 반환형] [함수 이름] (매개변수1, 매개변수2...){
기능 코드;
return [결과값]
}
//예시
int add (int num1, int num2){
int result;
result = num1 + num2;
return result;
}
함수는 위와 같은 형식으로 정의한다.
1. 함수 반환형은 return값의 자료형을 나타내고, return 값이 없는 경우에는 void라고 쓴다.
2. 함수 이름은 함수의 기능과 관련하여 명명한다.
3. 매개변수는 함수의 수행을 위해 필요한 변수로, 함수를 사용할 때 넣어주는 값을 의미한다.
public class FunctionTest {
public static void main(String[] args) {
int num1 = 10;
int num2 = 30;
int sum = addNum(num1, num2); //1
System.out.println(sum); //3
}
public static int addNum(int n1, int n2) { //2
int result = n1 + n2;
return result;
}
}
함수를 표현할 때 "함수명()" 으로 표현한다.
1. main() 바깥에 addNum()을 정의하였고, main()에서 addNum()을 호출하면서 num1과 num2를 넘겨주었다.
2. addNum()은 int 값 두 개를 매개변수로 받아 두 값을 더해서 return한다.
3. 함수의 return 값은 변수 sum에 대입된다.
num1의 값인 10과 num2의 값인 30이 더해져서 sum에 40이 정상적으로 대입된 것을 확인할 수 있다.
위에서 FunctionTest 클래스에서 함수를 정의하는 예제를 기준으로 설명하면,
1. main()에서 int형의 num1, num2, sum 변수를 선언했으므로 4byte*3 = 12byte의 공간이 스택에 생성된다.
2. main()에서 addNum()을 호출하면서 addNum()에서 사용한 int형의 n1, n2, result 변수로 인해 또 12byte의 공간이 스택에 생성된다.
3. result값이 sum에 대입되고 addNum()이 사용한 공간은 자동으로 사라진다.
public class Student {
// 멤버 변수를 정의
int studentID;
String studentName;
int grade;
String address;
//학생 이름을 가져오는 메서드
public String getStudentName() {
return studentName;
}
//학생 이름을 설정하는 메서드
public void setStudentName(String name) {
studentName = name;
}
}