다음 Java 코드 조각에 대해 궁금합니다.System.out.println -이 메서드는 Java에서 연결됩니까?
"System.out.println". 나는 이것에 대해 옳다 :
"시스템"은 정적 클래스이다. ". out"은 "System"클래스의 메소드입니다. 이것은 ".println"에 대해 약간 혼란 스럽습니다.이 클래스/객체는 어떤 방법입니까?
또한이 개념은 "메소드 체인화"로 알려져 있습니까?
감사
GF
다음 Java 코드 조각에 대해 궁금합니다.System.out.println -이 메서드는 Java에서 연결됩니까?
"System.out.println". 나는 이것에 대해 옳다 :
"시스템"은 정적 클래스이다. ". out"은 "System"클래스의 메소드입니다. 이것은 ".println"에 대해 약간 혼란 스럽습니다.이 클래스/객체는 어떤 방법입니까?
또한이 개념은 "메소드 체인화"로 알려져 있습니까?
감사
GF
아니요, 메소드 체인이 아닙니다. 당신은 System
이 클래스 (그냥 정적 클래스가 아니라 정적 클래스 일 수 있습니다. 내부 클래스 만 정적 일 수 있습니다)이지만 out
은 클래스의 정적 필드 (유형이 java.io.PrintStream)이며 println()
만 메소드입니다. PrintStream
입니다.
String s = "Long String ".toUpperCase().substring(4).trim()
out
방법은 아닌 -이 println
이 방법있는 PrintStream
의 인스턴스이다.
는 클래스 System는 PrintStream 형의 멤버 변수 '아웃'이 http://java.sun.com/j2se/1.5.0/docs/api/java/lang/System.html#out
참조하십시오. 그것은 방법이 아닙니다.
클래스 PrintStream에는 println (String) 메서드가 있습니다.
아니요, 메소드 체인이 아닙니다.
메서드 체이닝은 단지 이을 리턴하고 있습니다. 여기서 공백을 반환 할 수 있습니다. 단일 명령문에서 메서드를 여러 번 호출하고 더 자연스러운 DSL 표현을 허용합니다. 당신은 좀 더 알고에 관심이 있다면 StringBuilder의 APPEND (String) 메소드
StringBuilder builder = new StringBuilder()
.append("I am a ")
.append("String")
.append("Builder");
의 행동에 그것을 볼 수 있습니다, 마틴 파울러는 방법 체인 here에 대해 이야기했다.
만 내부 클래스는 "정적"사용된다
이 방법은 체인의 일례이다. –그래, 네가 지적하기 전에 내 실수를 바로 잡았어. 고마워! – Brabster