[Java] 함수 기초
## 함수 호출과 선언은 위치가 다르다.
- 함수 호출문: 함수 호출문은 주로 main 메서드 내부에서 사용됩니다. main 메서드는 프로그램의 진입점(entry point)으로서 프로그램이 실행될 때 처음으로 호출되는 메서드입니다. 따라서 다른 함수를 호출하여 원하는 동작을 수행하는 로직은 main 메서드 내부에 위치하게 됩니다.
- 함수 선언문: 함수 선언문은 클래스 내부에 위치하며, main 메서드와 같은 레벨에 선언됩니다. 이렇게 선언된 함수는 클래스 내에서 어디서든 호출될 수 있습니다.
import org.w3c.dom.ls.LSOutput;
import java.util.ArrayList;
public class Methods {
public static void main(String[] args) {
// 메서드는 class 내부에 선언되어야 한다.
// 그래서 main 밖에 선언되어야 한다.
// main 이 static 이면 함수에도 static이 붙어야 한다.
function1(5,6); // 11
function2(10); // 10
String result = function3();
function4(); // Hello!
System.out.println(result); // Hello
ArrayList newList = new ArrayList();
newList.add("my name is");
newList.add("cobok");
printFunction(newList); // my name is // cobok
}
// 함수 (메서드) 선언
// 파라미터 여부와 반환을 하는지 여부에 따라 4가지 상황으로 구분
// 1. 입력(파라미터)있고 출력(리턴)있는 경우: 1)타입 정의 2) 리턴 작성
static int function1 (int a, int b){
int result = a+b;
System.out.println(result);
return result;
}
// 2. 입력(파라미터)는 있고 출력(리턴) 없는 경우: 1) 타입 void 2) 노리턴
static void function2 (int a){
System.out.println(a);
}
// 3. 입력(파라미터)는 없고 출력(리턴)만 있는 경우: 1) 타입정의 2) 리턴 작성
static String function3(){
return "Hello";
}
// 4. 입력(파라미터) 없고, 출력(리턴)도 없는 경우: 1) 타입 void 2) 노리턴
static void function4(){
System.out.println("Hello!");
}
static void printFunction(ArrayList list){
for(int i = 0; i < list.size(); i++){
System.out.println(list.get(i));
}
}
}