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

ku8335님의 프로필 이미지
ku8335

작성한 질문수

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

return의 의미에 대하여

해결된 질문

작성

·

499

1

스크린샷(22).png안녕하세요 공부하다가 이해안되는 부분이 있어서 이렇게 질문합니다.

44번 문장에서는 return을 사용하는데

47번 문장에서는 왜 return을 사용하지 않나요?

그리고 this. 이 부분은 어떻게 사용하고 왜 사용하나요? 그냥 this 빼고 사용하면 안되나요?

답변 1

1

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

안녕하세요?
메소드는 다음과 같은 형태로 생겼습니다.

반환형 메소드명(전달값) {
    메소드 동작 1;
    메소드 동작 2;
    ...
    메소드 동작 N;
    return 반환값;
}

return 은 메소드 동작 수행 이후 반환하는 값이 있는 경우에 사용합니다. 이때 반환하는 값의 형태에 따라 '반환형' 위치에 int, double, String 등이 들어가게 되구요. 또한 반환하는 값이 있는 메소드는 이를 호출하는 곳에서 그 값을 받아서 계속해서 사용할 수 있습니다.

반환하는 값이 없는 메소드는 다음과 같이 생겼습니다.

void 메소드명(전달값) {
    메소드 동작 1;
    메소드 동작 2;
    ...
    메소드 동작 N;
}

별다른 반환값이 없으므로 '반환형' 위치에는 void 라고만 적어주면 되며, 이 메소드 내에서는 return 이 사용되지 않습니다. (※ 메소드의 동작을 즉시 중단하고자 할 때 return; 과 같이 사용할 수는 있으나, 일반적인 경우에 대해 설명합니다)

String getQuality() { ... } 메소드는 quality 변수가 가지는 문자열을 반환하고자 return 을 사용하며 '반환형' 위치에 문자열에 해당하는 String 을 작성하였습니다.

void setPrice(int price) { ... } 메소드는 price 라는 변수에 전달받은 값을 설정만 하고 별다른 반환하는 값은 없으므로 '반환형' 위치에 void 라고 적고 return 은 사용하지 않았습니다.

this. 는 클래스의 인스턴스 변수나 메소드에 접근할 때 사용합니다. 일반적으로는 this. 을 적지 않아도 무방하지만, int price 와 같이 클래스 내에 정의된 인스턴스 변수의 이름과 메소드의 전달값으로 정의된 변수의 이름이 같은 경우 메소드 내에서 this.price 라고 적으면 클래스 인스턴스 변수, 그냥 price 라고 적으면 전달값 price 변수를 뜻하게 됩니다. 즉, 서로 같은 이름을 가지는 인스턴스 변수와 전달값으로 정의된 변수를 구분할 때는 필수적으로 사용되며, 그 외에는 꼭 this. 을 붙이지 않아도 괜찮습니다 😊

감사합니다.

ku8335님의 프로필 이미지
ku8335

작성한 질문수

질문하기