2009-12-28 2 views
2

다음 Java 코드 조각에 대해 궁금합니다.System.out.println -이 메서드는 Java에서 연결됩니까?

"System.out.println". 나는 이것에 대해 옳다 :

"시스템"은 정적 클래스이다. ". out"은 "System"클래스의 메소드입니다. 이것은 ".println"에 대해 약간 혼란 스럽습니다.이 클래스/객체는 어떤 방법입니까?

또한이 개념은 "메소드 체인화"로 알려져 있습니까?

감사

GF

답변

10

아니요, 메소드 체인이 아닙니다. 당신은 System이 클래스 (그냥 정적 클래스가 아니라 정적 클래스 일 수 있습니다. 내부 클래스 만 정적 일 수 있습니다)이지만 out은 클래스의 정적 필드 (유형이 java.io.PrintStream)이며 println() 만 메소드입니다. PrintStream입니다.

String s = "Long String ".toUpperCase().substring(4).trim() 
3

참조하십시오. 그것은 방법이 아닙니다.

클래스 PrintStream에는 println (String) 메서드가 있습니다.

아니요, 메소드 체인이 아닙니다.

메서드 체이닝은 단지 을 리턴하고 있습니다. 여기서 공백을 반환 할 수 있습니다. 단일 명령문에서 메서드를 여러 번 호출하고 더 자연스러운 DSL 표현을 허용합니다. 당신은 좀 더 알고에 관심이 있다면 StringBuilder의 APPEND (String) 메소드

StringBuilder builder = new StringBuilder() 
    .append("I am a ") 
    .append("String") 
    .append("Builder"); 

의 행동에 그것을 볼 수 있습니다, 마틴 파울러는 방법 체인 here에 대해 이야기했다.

+0

만 내부 클래스는 "정적"사용된다

이 방법은 체인의 일례이다. –

+0

그래, 네가 지적하기 전에 내 실수를 바로 잡았어. 고마워! – Brabster

관련 문제