System.out.println()
by coco3oSystem.out.println()?
System.out.println();은 코딩을 하다보면 자주 사용하는 출력문이다.
평소엔 그냥 콘솔에 출력만 했었지 정확히 어떤 의미인지 모르고 사용해왔던 것이였다.
그래서 System.out.println()를 정확히 알고 사용하기 위해 System.out.println()에 대해 알아보자.
알아보기에 앞서 java.lang.Object 구조에 대해서 간단히 알아보자. 구조는 아래와 같다.
java.lang.Object
ㄴ java.io.OutputStream
ㄴ java.io.FilterOutputStream
ㄴ java.io.PrintStream
System 클래스를 살펴보면 java.lang 패키지에 속하는 클래스임을 알 수 있다.
그렇기 때문에 import를 하지 않고 우리는 System이라는 클래스를 바로 사용할 수 있다.
out은 PrintStream의 인스턴스(객체)이다.
System 클래스에서 도트연산자(.)로 접근 할 수 있는것으로 보아 static 객체임을 알 수 있다.
실제로 System 클래스에서 확인해보면 public static final PrintStream out = null;로 선언 되어있는 것을 볼 수 있다.
여기서 PrintStream을 보면 FilterOutputStream을 상속 받으면서 Appendable, Closeable 인터페이스를
상속받고 있음을 알 수 있다. 맨위의 Object 구조를 살펴보면 FilterOutputStream은 OutputStream을 상속받고 있다.
System.out에서 println 메소드를 사용하므로 PrintStream 클래스에서 println 메소드가 선언되어 있을 것이다.
boolean, char 뿐만 아니라 int, long, float 등 메소드 오버로딩이 되어있다.
정리하면, System.out.println()이란 'java.lang.System 클래스 내부에 존재하는 static 객체인 out이 있고,
out 객체는 PrintStream의 객체이므로 PrintStream이 갖고있는 println 메소드를 사용한다.' 라고 할 수 있다.
더불어 System.out.println()에서 System은 카테고리의 역할, 기능은 out이라는 객체와 그 객체의 println메소드가 한다는 것을 알 수 있다.
'🌈Programming > Java' 카테고리의 다른 글
[Java] try - with - resources로 자원해제 처리 (0) | 2021.01.17 |
---|---|
온라인 자바 스터디 #9 - 예외 처리 (0) | 2021.01.11 |
온라인 자바 스터디 #8 - 인터페이스 (0) | 2021.01.04 |
추상클래스와 인터페이스의 차이 (1) | 2021.01.02 |
온라인 자바 스터디 #7 - 패키지, import, 접근제어자, 클래스패스 (0) | 2020.12.29 |
블로그의 정보
슬기로운 개발생활
coco3o