인프런 커뮤니티 질문&답변

IIIiillillil님의 프로필 이미지
IIIiillillil

작성한 질문수

나도코딩의 자바 기본편 - 풀코스 (20시간)

전달값 반환값 차이

작성

·

262

·

수정됨

0

반환값이 없는 경우에는 Void를 사용하고 전달값을 쓴다.

반환값 return이 있는 경우에는 반환에 따라 Int / String/Double 을 사용한다

까지 제가 이해를 한 부분인데...

public static void power (int number)

 

public static String getPhoneNumber()

 

어떤 차이에 따라 어떻게 사용되는지를 잘모르겠습니다.ㅠㅠ

답변 1

0

나도코딩님의 프로필 이미지
나도코딩
지식공유자

안녕하세요?

메소드의 전달값과 반환값을 처음 접하게 되면 누구나 어렵게 느껴지게 마련입니다.

😊 하나씩 설명드려볼게요.

먼저 메소드는 어떤 특정 기능을 하는 코드들의 묶음입니다. 그리고 다른 어딘가에서 이 메소드를 호출하게 되면 메소드 내부의 코드가 실행되는 것이죠. 이때 메소드를 호출할 때 어떤 값을 전달하고 그 값을 메소드 내에서 사용해야 하는 경우라면 전달값을 보내줍니다. 별다른 전달값 없이 메소드 자체적으로 동작한다면 전달값을 보내주지 않아도 됩니다.

즉 전달값을 보내거나, 보내지 않거나 둘 중 하나입니다.

메소드의 동작을 수행하고 나서 결과값을 반환할 필요가 있다면, 그러니까 메소드를 호출한 곳에서 결과값을 받아서 사용할 필요가 있다면 값을 반환합니다. 동작을 수행하기만 하고 별다른 결과값을 반환할 필요가 없다면, 그러니까 메소드를 호출한 곳에서 결과값을 받아서 사용할 필요가 없다면 값을 반환하지 않습니다.

즉 값을 반환하거나, 반환하지 않거나 둘 중 하나입니다.

 

전달값과 반환값은 이렇게 몇 가지 세트로 구성될 수 있습니다.

1. 전달값도 없고 반환값도 없는 경우

public static void print() {
    System.out.println("평범한 메소드");
}

2. 전달값은 있지만 반환값은 없는 경우

public static void print(String name) {
    System.out.println("나의 이름은 " + name); // 전달값 사용
}

3. 전달값은 없지만 반환값이 있는 경우

public static String getPhoneNumber() {
    return "010-1234-5678"; // 010-1234-5678 이라는 문자열 반환
}

4. 전달값도 있고 반환값도 있는 경우

public static int add(int num1, int num2) {
    return num1 + num2; // num1 과 num2 를 사용하여 두 수의 합을 반환
}

코드에서 보시다시피 반환값이 있는 경우 에는 반드시 return 이 필요하며 어떠한 값을 반환해줘야 합니다. 반환값이 없는 경우 에는 return 이 필요하지 않습니다. (메소드의 동작을 즉시 멈추기 위해 return 을 사용할 수는 있습니다)

전달값이 있는 경우 에는 괄호 속에 변수명을 작성하며 메소드 내에서 사용을 합니다. 그리고 이 메소드를 호출하는 곳에서 반드시 값을 전달해줘야 합니다. 전달값이 없는 경우 에는 괄호 속을 비워둡니다. 메소드를 호출하는 곳에서는 그냥 메소드 이름 뒤에 () 이렇게 괄호를 열고 닫아주기만 하면 됩니다.

위 4가지 경우에 대해 한 번씩 천천히 살펴보시면서 강의 내용을 다시 한 번 복습하시면 도움될거에요 😊
혹시라도 더 궁금한 부분 또는 설명이 더 필요한 부분이 있으시다면 질문글 다시 남겨주세요!

감사합니다.

IIIiillillil님의 프로필 이미지
IIIiillillil
질문자

답변 감사합니다!

 

 

IIIiillillil님의 프로필 이미지
IIIiillillil

작성한 질문수

질문하기