기본 질문 일 수 있습니다. 그러나 나는 단지 의심을 분명히하고 싶습니다.System.in은 inputstream 객체와 어떻게 같습니까?
시스템 클래스는 java.lang.Object (java.lang.System)에 있으며, out, err에는 세 개의 필드가 있습니다. 그렇다면 System.in은 InputStream이 java.lang.Object의 Inputstream 객체 인 java.io.Inputstream 객체입니다.
기본 질문 일 수 있습니다. 그러나 나는 단지 의심을 분명히하고 싶습니다.System.in은 inputstream 객체와 어떻게 같습니까?
시스템 클래스는 java.lang.Object (java.lang.System)에 있으며, out, err에는 세 개의 필드가 있습니다. 그렇다면 System.in은 InputStream이 java.lang.Object의 Inputstream 객체 인 java.io.Inputstream 객체입니다.
System
클래스의 구현을 살펴보면이 필드는 public final static InputStream in = nullInputStream();
입니다.
System.in
으로 액세스 할 수있는 정적 초기화 된 InputStream
개체입니다. System.out
및 System.err
은 유사합니다.
응답에 대해 감사하는 짐승. 우리는 public final static String name = "xxx";를 작성합니다. 여기서 String 객체는 수퍼 클래스 인 Object 클래스에 존재하므로 메서드를 사용할 수 있습니다. 우리는 객체를 확장하는 시스템 클래스에 정적 InputStream을 선언 할 때 InputStream이 Object 클래스에 존재하지 않으므로 의심 할 여지없이 어떻게 InputStream으로 선언 할 수 있을까요? 내가 틀렸다면 나를 바로 잡으세요. –
@NarayanaDasari 귀하의 질문과 의견은 이해하기 어렵습니다. "String 객체가 Object에 있습니다"라는 것은 무엇을 의미합니까? "Inputstream은 Object 클래스에 없습니다". 그게 무슨 뜻 이죠? 당신이 말하는 것은 Java에서는 이해가되지 않습니다. "Object"에는 "String object"또는 "Inputstream" "이 없습니다. –
@Erwin Bolwidt. 고맙습니다. 내 의문을여 셨습니다. 나는 자바 초보자입니다. –
자신을 혼란스럽게하는 것 같습니다. 한발 뒤로 물러 설 수 있습니다.
클래스 java.lang.System는 여러 정적 필드, 그들 중 하나가 in라고 있습니다.
오브젝트는 InputStream 유형의 원시 유형을 제외한 모든 오브젝트가 java.lang.Object의 하위 항목이기 때문에입니다.
그런 의미에서 실제로 here을보고이 모든 용어가 실제로 이라는 것을 알아내는 것이 좋습니다.
'System.in'은'InputStream'으로 정의 된'in'이라는 시스템의 필드입니다. 필드가 허용 된 유형일 수는 없습니다. –
'String'을 상상해보십시오 ... 'length' 필드가 정수입니다. 클래스의 유형과 클래스 내부의 유형이 일치하지 않아도됩니다. – byxor
기록을 위해 : 답변 중 하나가 도움이 되었다면 고려해보십시오. 그렇다면 그것을 수락하는 것을 고려하십시오! – GhostCat