해결된 질문
21.07.21 14:07 작성
·
324
0
선생님 항상 강의 잘 듣고 있습니다.
질문이 있어서 이렇게 글을 작성합니다.
제가 public void init(){} 안에 String uuid = UUID.randomUUID().toString()이라고 했을 때는 init될 때만 uuid가 존재하고 그 뒤로는 uuid가 넘겨지지 않아서 null값이 출력이 되었습니다. String uuid 부분을 uuid로 했더니 uuid값이 잘 출력되었습니다. String을 앞에 넣고 하는 것과 안 넣고 하는 것이 차이가 있는지 궁금합니다.
좋은 강의 해주셔서 언제나 감사드립니다.
답변 2
1
1
안녕하세요. black1848님, 공식 서포터즈 David입니다.
.
메서드 내에서 변수를 선언하게 되면 해당 변수의 스코프는 해당 변수가 속한 메서드가 됩니다.
init() 내에서 String uuid로 선언하게 init 메서드의 지역변수이고 MyLogger의 멤버변수인 uuid와는 별개로 취급되는 것입니다. 따라서 init 내에서 멤버변수 uuid에 UUID.radomUUID().toString()의 반환값을 할당하고 싶다면 init 메서드 내에서 uuid를 별도로 선언할 필요가 없습니다. (하더라도 this.uuid로 접근하셔서 할당하셔야 합니다.)
혹시 자바문법에 익숙하지 않으시다면 자바문법을 먼저 익히시고 강의를 들으시길 추천드립니다.
.
감사합니다.
2021. 07. 22. 00:57
친절한 답변 감사드립니다! 앞에 String을 사용하여 새로운 변수를 선언한 형태가 되었네요. 넵 지금 같이 병행해서 공부중입니다. 다시 한 번 친절한 답변 감사드립니다!!
2021. 07. 22. 00:58
친절한 답변 감사드립니다. 강사님 스프링 강의가 정말 재밌어서 바로 시작해버렸네요. 그래서 자바 기본기가 많이 약합니다. 파이썬을 하다가 와서 좀 다른 점이 있네요! 자바 선언문부터 쭉 다시 봐야겠습니다! 다시 한 번 친절한 답변을 해주셔서 감사드립니다!