나는 이런 식으로 물건을 만드는 것을 맹세 할 수 있었다. 무언가는 무엇을합니까?JSomething something = new JSomething(). 무언가;
1
A
답변
4
문자 그대로 그것을 복용, 그것은 클래스 JSomething
유형 JSomething
이다 somethingelse
라는 필드가 있다고 할 수있다 :이 경우
class JSomething {
JSomething somethingelse;
}
을의 JSomething
내부라는 JSomething
somethingelse
에 대한 참조가 될 수 있습니다 다음 얻을 : 그러나
JSomething something = new JSomething().somethingelse;
, 나는 이것이라는 design pattern의 일환으로 볼 것으로 의심- 메서드 호출이 동일한 유형의 인스턴스를 반환합니다.
예를 들어 StringBuilder.append
메서드를 사용하면 StringBuilder
을 반환합니다. 따라서 다음을 수행 할 수 있습니다.
StringBuilder sb = new StringBuilder("Hello").append("World!");
2
새로운 JSomething(). somethingelse는 필드 액세스에 불과합니다. 어쩌면 JSomething.somethingelse의 잘못 작성된 정적 액세스 일 수 있습니다. 예 : Color color = Color.black;
대신 Color color = new Color(0).black;
0
somethingelse
은 JSomething 내에 포함 된 JSomething의 인스턴스가됩니다.