클래스와 같은 이름의 멤버를 가지는 것은(대소문자를 제외하더라도) 혼란스럽습니다. 이것은 특히 클래스의 인스턴스의 이름을 지정하는 일반적인 관습을 고려할 때 특히 그렇습니다.
클래스의 이름과 같은 멤버나 필드가 나타내거나, 가질 수 있는 특정한 측면을 더 잘 반영하도록 이름을 변경하는 것이 좋은 관습입니다.
규칙을 어긴 코드
public class Foo {
private String foo;
public String getFoo() { }
}
Foo foo = new Foo();
foo.getFoo() // 이것은 무엇을 리턴해야 하나요?
규칙을 준수한 해결책
public class Foo {
private String name;
public String getName() { }
}
//...
Foo foo = new Foo();
foo.getName()
예외
필드의 타입이 그것을 포함한 클래스이고, 해당 필드가 static 이라면 타입과 같은 이름의 필드를 가지는 것에 대해 문제를 제기하지 않습니다.
public class Foo {
...
private static Foo foo;
public Foo getInstance() {
if(foo==null) {
foo = new Foo();
}
return foo;
}
...
}
If you like SONARKUBE, don’t forget to give me a star. ![]()