[자바 기초] 함수와 메서드
복습
https://shins99.tistory.com/11
[자바 기초] 객체 지향 언어란?
복습 https://shins99.tistory.com/9 [자바 기초] 참조 자료형 - Scanner, Random 복습 https://shins99.tistory.com/8 [자바 기초] for, while 복습 https://shins99.tistory.com/7 [자바 기초] if 문 복습 https://shins99.tistory.com/6 💡
shins99.tistory.com
함수와 메서드
💡 학습 목표
1. 함수에 대해 이해하자 .
2. 메서드에 대해 이해하자.
함수 (Function)
● 하나의 기능을 수행하는 일련의 코드
● 구현된(정의된) 함수는 호출하여 사용하고 호출된 함수는 기능이 끝나면 제어가 반환됨
● 함수로 구현된 하나의 기능은 여러 곳에서 동일한 방식으로 호출되어 사용될 수 있음
public class 클래스명 {
// 함수를 정의하는 코드
// 함수 선언부
static 반환자료형 함수명(자료형a 매개변수a, 자료형b 매개변수b 등) {
// 함수 구현부 (body)
코드;
...
retrun 반환값;
}
public static void main(String[] args) {
// 함수를 호출하는 코드
함수명 (매개변수a, 매개변수b, ...);
}
}
함수 정의
● 함수 선언부의 자료형에 따라 함수의 반환(return) 값의 자료형이 정해짐
→ return 키워드 입력 시, 함수 선언부의 자료형과 return 데이터의 자료형이 동일해야 함
● 함수는 이름, 매개 변수, 반환 값, 함수 몸체(body)로 구성됨
함수 호출(invoke)
● 메인 함수 내에서 코드 작성
● positional : 매개변수의 순서를 정의한 것과 동일하게 사용해야 함
● 함수를 호출해서 변수에 저장할 때, 함수의 반환 자료형, 변수 자료형이 동일해야 함
● 함수를 종료하면 실행의 제어권 반납. (값을 반환하는 함수는 해당 값을 반환)
함수호출 예시
public class FunctionMainTest {
// 함수란?
// 한번 만들어두고 재사용 하기 위해 설계를 한다.
// 권장사항은 하나의 함수에 하나의 기능설계가 맞음
// 실행의 제어권 반납
// 두개의 매개 변수를 받아서 덧 셈 하는 기능을 만들기
// 함수를 선언하는 문법
public static int addNumber(int n1, int n2) {
// 함수 안에 사용하는 변수는 - 지역 변수
// 결과를 담을 변수를 선언
int result;
result = n1 + n2;
return result;
}
public static double minusNumber(int n1, int n2) {
// 결과를 담을 변수를 선언
int result;
result = n1 - n2;
return result;
}
public static void main(String[] args) {
int returnValue = addNumber(10, 5); // 함수를 호출하는 문법
System.out.println(returnValue);
int returnValue2 = addNumber(100, 7895);
System.out.println(returnValue2);
double returnValue3 = minusNumber(5, 100);
System.out.println(returnValue3);
// 함수 호출할 때는 모양 맞추기 이다.
} // end of main
} // end of class
함수의 종류
값을 반환하는 함수
static 자료형 함수명 (자료형a 매개변수a, 자료형b 매개변수b, ...) {
코드;
...
return 반환값;
}
값을 반환하지 않는 함수
static void 함수명 (자료형a 매개변수a, 자료형b 매개변수b, ...) {
코드;
...
}
매개변수가 없는 함수
static 자료형 함수명 () {
코드;
...
return 반환값;
]
스택 메모리(stack)
● 스택 : 함수가 호출될 때 지역 변수, 매개 변수가 사용하는 메모리
메모리의 높은주소에서 낮은 주소 방향으로 할당됨
힙 메모리(heap)
● 힙 : 객체 생성될때 저장되는 메모리, 동적 메모리 영역, 멤버변수
메모리의 낮은 주소에서 높은 주소의 방향으로 할당됨
메서드 (Method, 멤버 함수)
● 클래스 내부에서, 자신의 멤버 변수를 활용해서 객체의 기능을 수행하는 것
● 함수와 유사하지만, 보다 명확하고 구체적
● 중첩 메서드 구현 불가능 (메서드 안에 메서드 선언 불가)
메서드 구현
public class 클래스명 {
// 상태 (멤버변수)
자료형 멤버변수1ㅣ
...
// 기능 (메서드)
// 메서드 선언
public 반환자료형 메서드1 (매개변수) { // 자료형을 특정 짓기 어려우면 임시로 void 입력
// 메서드 구현
코드
}
...
}
메서드 호출
public static void main(String[] args) {
// 객체 생성
클래스명 참조변수 = new 클래스명();
// 객체의 멤버 변수 값 초기화
참조변수.멤버변수1 = 값;
...
// 메서드 호출
참조변수.멤버변수1(매개변수);
...
}
- 클래스 내부에서 자신의 메서드를 호출할 경우 : 메서드명()