inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

김영한의 실전 자바 - 기본편

문제와 풀이

문제와풀이2번 출력

502

qpdlqg

작성한 질문수 7

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
여기에 질문 내용을 남겨주세요.

package poly.expay;

public class PayService{


    public void processPay(String name, int amount) {
        boolean result;
        System.out.println("결제를 시작합니다: " + "option = " + name + ", amount = " + amount);
        if(name.equals("kakao")) {
            KakaoPay kakaoPay = new KakaoPay();
            result = kakaoPay.Pay(amount);
        }
    }
}

다름이 아니라 result값에 kakaoPay.Pay(amount)를 넣는건 알겠는데 그반환값도 true로 되구요 근데 왜 메인에서 출력이 되는건가여? 제가 생각하기로는 result = true라고 생각을 하였는데, 따로 출력을 하기위해선 kakaoPay.Pay(amount); 만 써야 출력이 되지 않나요? 아님 result에 값을 대입함과 동시에 출력도 되는지요.

java 객체지향

답변 2

0

김영한

안녕하세요. qpdlqg님

생각하는자님께서 잘 말씀해주셨는데요.

kakaoPay.Pay(amount); 를 호출하면 이 메서드가 실행됩니다. 그리고 이 메서드에 있는 내용들이 출력됩니다.

이 메서드의 호출이 끝나면 이 메서드의 호출 결과가 result에 담기게 됩니다.

지금 스택 구조에는 main() -> processPay()가 담겨 있는 상황이고, 여기서 kakaoPay.Pay(amount)를 호출하게 되면 그때는

main() -> processPay() -> Pay(amount)가 호출 됩니다. Pay(amount)의 결과를 반환하면 이때는 main() -> processPay()가 실행중이게 됩니다.

processPay()의 실행이 종료되면 main()으로 돌아갑니다.

감사합니다.

0

qpdlqg

정말 감사드립니다~~ 이해되었습니다!!

0

생각하는자

이거는 스택 구조를 좀 생각하시면 좋을 것 같습니다. 스택 구조를 기억하시면 실행 영역에서 대기하고 있다가 명령이 종료되면 다음 것을 실행하고, 나중에 가셔야 맨 마지막인 main 메서드가 실행하는것을 생각하시면 답이 풀릴것 같습니다.

0

qpdlqg

제가 그 부분을 놓쳤던 것 같아요 감사합니다!!

질문있습니다

0

25

1

1번 문제 질문입니다.

0

31

1

음악플레이어 문제 중 코드질문

0

26

1

9장 상속 문제와 풀이 질문

0

37

1

강의 자료에 사소한 오타가 있습니다.

0

47

2

매서드 참조값 반환??

0

65

1

접근제어자 - 쇼핑카트 문제에서 상품출력 부분 메서드

0

68

1

자바 기본편 - .(dot)에 관한 질문입니다!

0

84

1

공부방법

0

73

2

상속관계에서 멤버 변수는 오버라이딩 되는 개념이 아닌가요?

0

81

1

static method 질문

0

65

1

캡슐화 문제풀이 ShoppingCart 요구사항에 문제가 있어보입니다. 피드백 주세요

0

94

1

Method1에서 Student 객체

0

72

1

3강 18. null 질문

0

66

1

this 와 super의 호출 순서는 부모-자식관계 떄문만인가요?

0

74

1

팩토리 메서드 패턴과 일반 생성자 사용의 장단점

0

96

1

문의

0

103

1

9장 상속 문제와 풀이 부분 궁금한게 있어서 질문드립니다

0

88

1

상속과 그에 따른 메모리 구조 질문

0

61

1

call메소드에서 멤버에 접근하는 방식을 이해 못 했습니다

0

73

1

수강기한

0

134

1

기본편 객체지향 프로그래밍에 대한 정의

0

85

1

섹션10 상속 메모리 구조 및 문제 관련 질문

0

86

1

추가 지식 학습

0

151

2