슬기로운 개발생활

System.out.println()

by coco3o
반응형

System.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이라는 클래스를 바로 사용할 수 있다.

System.class

out은 PrintStream의 인스턴스(객체)이다.

System 클래스에서 도트연산자(.)로  접근 할 수 있는것으로 보아 static 객체임을 알 수 있다.

실제로 System 클래스에서 확인해보면 public static final PrintStream out = null;로 선언 되어있는 것을 볼 수 있다.

System.class

여기서 PrintStream을 보면 FilterOutputStream을 상속 받으면서 Appendable, Closeable 인터페이스를

상속받고 있음을 알 수 있다. 맨위의 Object 구조를 살펴보면 FilterOutputStream은 OutputStream을 상속받고 있다.

PrintStream.class

System.out에서 println 메소드를 사용하므로 PrintStream 클래스에서 println 메소드가 선언되어 있을 것이다.

PrintStream.class안의 println메소드

boolean, char 뿐만 아니라 int, long, float 등 메소드 오버로딩이 되어있다.


정리하면, System.out.println()이란 'java.lang.System 클래스 내부에 존재하는 static 객체인 out이 있고,

out 객체는 PrintStream의 객체이므로 PrintStream이 갖고있는 println 메소드를 사용한다.' 라고 할 수 있다.

더불어 System.out.println()에서 System은 카테고리의 역할, 기능은 out이라는 객체와 그 객체의 println메소드가 한다는 것을 알 수 있다.

 

참고

반응형

블로그의 정보

슬기로운 개발생활

coco3o

활동하기