함수(Methods)

프로그래밍에서는 한줄의 코드가 아니라 여러 줄의 코드를 조합해서 작업을 수행한다. 그런데 반복적으로 어떤 작업을 처리해야 할 때, 동일한 코드를 여러 번 작성하는 것은 비효율적이다. 그렇기 때문에 어떠한 하나의 작업단위를 이루는 여러가지 코드를 한 묶음으로 만들어서 재사용 할 수 있도록 만든 것이 바로 함수, 또는 메서드라고 한다.

일반적으로 메서드(Method)는 클래스(class)의 기능적인 부분을 나타내는 함수(function)를 나타내는데, 자바에서는 모든게 클래스로 관리되기 때문에 메서드라는 이름으로 통용하고 있다.

 

1. 입력과 출력이 모두 있는 경우

출력은 콘솔의 문자 출력이 아닌 데이터 반환을 뜻한다.

static int mod (int a, int b) {
    int result = a % b;
    return result;
}

반환할 데이터 타입을 정한 후, 메서드의 이름을 정의한다. 괄호 안에는 매개변수, 즉 파라미터(parameter)로 정의한다. 그리고 매개 변수로 받은 값을 함수에서 어떤 식으로 사용할지에 대해 코드로 표현한다. 다시 데이터를 반환해서 사용할 수 있도록 하기 위해 return함수를 사용한다.

 

2. 입력은 있는데 출력은 없는 경우

static void printNum (int a) {
    System.out.println(a);
}

출력이 없다는 것은 아무런 데이터형으로도 만들 필요가 없다는 뜻이기 때문에 void라는 키워드를 작성한다. 서로 다른 메소드에서 쓰이는 변수들은 함수 내에서만 공유되므로 이름이 같아도 서로 공유되지 않는다. 위의 코드는 콘솔에서 출력될 뿐, a로 입력받은 데이터를 이후에 활용할 수 있도록 메모리에 저장해주지 않는다. 즉, 콘솔로 출력 후, a라는 데이터는 시스템에서 휘발된다.

 

3. 입력은 없는데 출력이 있는 경우

static String greeting() {
    return "Hello!";
}

입력값이 없기 때문에 파라미터 자리에는 아무 것도 입력하지 않는다. 그리고 위에서 지정한 데이터 타입인 문자열(String)을 리턴할 수 있도록 String 값을 넣어준다.

 

4. 입력과 출력이 모두 없는 경우

static void greeting_2() {
    System.out.println("Hello!");
}

위 코드는 콘솔로 출력만 하고 데이터 자체는 휘발된다.

 

static 안에서 실행되기 위해서는 함수에도 static이 붙어있어야한다.

 

이제 위의 모든 경우의 함수를 main에서 실행해보자.

public static void main(String[] args) {
	int mod_result = mod(3, 2); // 1번의 경우
	System.out.println(mod_result); // 1

	printNum(10); // 2번의 경우 // 10

	String str = greeting(); // 3번의 경우
	System.out.println(str); // Hello!

	greeting_2(); // 4번의 경우 // Hello!
}

 

 

'Back-End > Java' 카테고리의 다른 글

객체지향 - 객체지향 프로그래밍  (0) 2023.05.18
회원가입 프로그램 실습 - 자바(Java) 편  (1) 2023.05.16
자료구조 - 배열, 리스트, 맵  (0) 2023.05.12
제어문 - 조건문과 반복문  (0) 2023.05.11
연산자  (0) 2023.05.10

+ Recent posts