플레이그라운드 TDD: 자동차 경주 게임 구현 도중
자동차 경주 게임 구현 도중
indent 를 줄이는 한가지 방법
위와 같이 indent를 더 이상 줄이기 힘들다고 판단되는 곳까지 왔다
사실 본인은 indent를 1로 만드는 것이 더이상 불가능하다고 생각했다
그러나.. 갓텔리제이가 힌트를 주기를…
이것을 do while
문으로 바꿔보지 않겠는가 라고 계시를 내려주었다
역시 갓텔리제이다
스택프레임과 객체
아래와 같이 스프링 DI 처럼 외부에서 객체를 주입하고 싶었다
그래서 아래처럼 코드를 구현하였는데..
(구현부)
(실행부)
근데 이상한 건 항상 외부에서 객체를 꺼냈을 떄 null이 나오는 것이다..
분명히 필자는 객체는 reference
타입이라서
어떤 곳에서든지 객체를 생성받아서 값을 set하더라도
항상 동일한 객체를 바라본다고 생각했었다
그런데 null이 나왔다..
그래서 조사를 해보았다
처음 main 메서드를 실행할 때는 @815
이다. 이때 DI처럼 Prompt에 생성자 주입을 한다
그리고 새로운 객체를 생성하는 순간 ! @980
객체가 들어온다 (아래 그림)
게임이 종료된 후 호출부인 main 메서드에서 확인해보니 @815
객체가 표시되었다..
호출한 곳는 여전히 과거의 객체를 보고 있었고
호출 된 곳은 새로이 생성된 객체를 바라보고 있었다..
그래서.. 새롭게 생성된 객체를 꺼내고 싶으면
prompt가 이 일을 한다는 것이 조금 이상하게 느껴지지만.. 새로운 객체를 꺼내는 것에는 성공하였다