작성
·
120
0
안녕하세요 강의를 열심히 듣다가 궁금증이 생겨 문의드립니다.
filed에 선언된게
String contextPath, int port 이렇게 두가지인데
factory에 set 할때는 contextPath에는 this.contextPath
그 밑 port에서는 this를 사용하지 않았습니다.
this를 생략하여도 같은 필드변수를 가져오는것일까요 ?
(제 생각에는 같은 필드변수를 가져온다고 생각합니다. )
두개가 어떤 차이를 가지는지 알고 싶습니다.
( 제 생각엔 port 에도 this. 가 생략되어있다고 생각됩니다.)
질문을 읽어주셔서 감사합니다.
답변 1
1
클래스의 멤버 필드(인스턴스 변수)를 참조할 때 this를 붙일 수도 있고, 이름이 메소드 내의 변수와 충돌하지 않는다면 안 붙일 수도 있습니다. 보통 제가 this를 붙이는 습관이 있는데 말씀하신 port에는 빼먹었나보네요.
특별한 이유가 있는 것은 아닙니다. 😃
질문해주셔서 감사합니다.
이런 코드 작성 관례(인스턴스 변수에 this를 항상 붙일 것인가 꼭 필요한 경우만 붙일 것인가)는 개발팀 내에서 규칙을 정해서 모두가 같은 스타일로 만드는 게 좋습니다. 제가 있는 팀에는 항상 this를 붙이도록 합니다. 자칫 메소드가 길어졌을 때 이게 어디서 정의된 변수인지 살펴보는 불편을 줄여주고, 혹시 메소드 내에 로컬 변수로 같은 이름을 썼더라도 혼동이 발생하지 않을 수 있으니까요.
스프링 프레임워크의 개발자와 기여자들에게 요구되는 코딩 표준 가이드 문서가 있습니다. 이 문서도 잘 살펴보시면 클래스의 필드는 항상 this를 붙여서 참조하라고 되어있습니다.
https://github.com/spring-projects/spring-framework/wiki/Code-Style
답변 감사합니다.
원하는 답을 정확하게 들을 수 있어서 정말 감사합니다. 😃