함수와 Return 구문
함수란 일종의 코드 다발이다.
자주 할 작업은 다발로 묶어서 요청하는 것이 효율적이기 때문이다.
return 구문
# 추가 정보가 필요없는 실행문
print("abc")
# 추가 정보가 필요한 실행문
print(a + b)
아래 실행문은, 미지수로 처리된 a와 b의 값이 알아야만 실행할 수 있다.
public int func1(){
return 1;
}
fun1() 함수를 정의하였다.
int a = func1();// func1 자리에 1이라는 값을 그대로 호출한다
int a = 1;// 위와 같은 의미를 가지는 코드
함수는 static 영역에 저장된다
메모리 구조는 static , stack , heap으로 이루어지게 된다.
정의한 함수를 호출하게 되면
main()과는 별도로 fun1() 구역이 생성되며
해당 함수의 코드가 돌아가는 동안은 fun1() 구역이 존속하다가
닫는 부분을 만나면 fun1() 구역이 스택에서 삭제되고
main() 구역을 호출했던 라인 다음으로 넘어간다.
ㅡㅡㅡ
메서드(method)
메서드란?
반복되는 코드 블록에 이름을 붙여놓은 것
- 메서드는 반복되는 코드를 줄여주고 구조화 시킨다
- 객체지향 프로그래밍 관점에서 '객체가 가져야할 기능을 구현하기 위해 만든다' 라고 표현한다
- 메서드 이름 뒤에는 반드시 소괄호가 따른다
< 반환 유형 > < 메서드 식별자 이름> (매개 변수) {
기능 상세;
}
// 예시
public static void main(){
// 메인 메서드부터가 하나의 메서드.
}
package day06_t;
/*
* 1. 메서드 정의(선언)이 이루어져야 추후 호출할 수 있습니다.
* 2. 메서드의 선언은 메서드 내부에서 할 수 없습니다.
* 클래스 내부이면서 다른 메서드 외부에 작성해야 합니다.
* 3. 메서드 내부에서는 다른 메서드의 호출만 가능합니다.
* 4. 호출하는 과정중 다른 메서드 내부 지역으로 이동해서 해당 코드를 실행하고
* 타 메서드 호출이 끝나면 원래 호출했던 그 위치로 복귀합니다.
*/
public class MethodExample1 {
// 메인 메서드와 함께 존재하는 메서드는 static을 붙여서 생성해야 합니다.
public static void sayHello() {
System.out.println("안녕하세요! sayHello 메서드를 호출하셨네요!");
System.out.println("다음에 또 호출해주세요.");
}
public static int calcSum(int x) {
int sum = 0;
for(int i = 1; i <= x; i++) {
sum += i;
}
return sum;
}
public static int totalSum(int a, int b) {
return a + b;
}
public static void main(String[] args) {
// 단독 메서드 호출 구문은 아래와 같이 이탤릭체로 표시됩니다.
sayHello();
// 리턴구문은 콘솔창에 출력되는것을 보장하지 않습니다.
//calcSum(10);//55
System.out.println(calcSum(10));//55
totalSum(1, 2);//3
}
}
package day06_t;
/*
* 매개 변수(parameter)
*
* 1. 매개변수는 메서드 호출시 불완전한 문장을 채워주기 위해 사용하는 변수입니다.
* 2. 매개변수에 어떤 값이 전달되는지에 따라 메서드의 실행 결과가 달라집니다.
* 3. 어떤 매개변수를 이용해 문장을 완성시킬지는 선언부에 작성합니다.
* 4. 매개변수가 필요없는 경우 비울 수 있습니다.
*/
public class MethodExample2 {
// 메서드는 메서드 내부에 작성될 수 없습니다.
public static void greet(String name) {
System.out.println(name + "님 안녕하세요!");
}
public static void getThaiNumber() {
System.out.println("능 : 1");
System.out.println("썽 : 2");
System.out.println("쌈 : 3");
System.out.println("씨 : 4");
}
public static void main(String[] args) {
// 위 구문들은 return구문이 없으므로
// System.out.println(); 사이에 넣을 수 없습니다.
// 메서드 종료 후 호출 위치로 전달될 값이 없기 때문입니다.
greet("채종훈");
//System.out.println(greet("채종훈"));
getThaiNumber();
//System.out.println(getThaiNumber());
}
}
반환 유형 (return type)
메서드가 실행한 후 메서드를 호출한 곳에 반환하는 값의 데이터 타입
- 메서드는 반환 값이 있을 수도, 없을 수도 있어서 없는 경우네는 반환 유형에 void를 적어줘야한다
- 반환 값이 있는 메서드를 호춯할 때, 해당 반환 유형에 맞는 변수에 반환 값을 저장한다
- 메서드가 실행의 결과값을 반환할 때는 return이라는 키워드를 사용한다
// 예시 - void인 경우에는 return 키워드가 필요 없다. 쓸 수는 있음
public void fun1(){
실행문;
}
// 예시 - int인 경우는 정수 자료를 반드시 return 해야한다
public int fun2(){
return 1; //정수 리턴
}
return
메서드의 실행을 끝내고 결과 값을 호출된 부분에 반환하는 문장
- return문만 단독으로 사용했을 때 -> 호출된 곳으로 제어만 넘어간다
- return문 + 연산식 -> 식의 결과 값과 제어가 함께 넘어간다
매개 변수 (parameter)
메서드가 실행될 때 필요한 데이터를 외부로부터 받기 위해 사용
- 메서드의 소괄호 부분에 데이터 타입과 함께 선언
- 초기화 X
- 여러개 선언 가능
- 메서드가 외부로부터 받을 데이터가 없다면, 선언 하지 않고 void 대신 ()안을 비워둬야한다
'Programing🤖 > JAVA' 카테고리의 다른 글
[JAVA] 접근제한자와 상속 (0) | 2024.08.23 |
---|---|
[JAVA] 클래스와 객체지향 프로그래밍 (0) | 2024.08.23 |
[JAVA] 제어 (0) | 2024.08.23 |
[JAVA] 변수와 자료 (0) | 2024.08.23 |
[JAVA] 기본사항 이해하기 (0) | 2024.08.23 |