이근둥
근둥이의 블로그
이근둥
전체 방문자
874,952
오늘
323
어제
187

공지사항

  • 전체보기 (107)
    • 웹 (9)
    • 언어 & 프레임워크 (53)
      • JavaScript (7)
      • TypeScript (0)
      • Node.js (11)
      • Vue.js (3)
      • React (0)
      • React Native (0)
      • C & C++ (19)
      • Java & JSP (9)
      • Python (4)
    • 컴퓨터 과학 (3)
      • 알고리즘 (0)
      • 자료구조 (3)
    • 기타 (9)
      • Linux (1)
      • Git (2)
      • DialogFlow (4)
    • 일상 (13)
      • 게임 (13)
    • 칼럼 (9)
      • 회고 (0)
      • 나만의 글 (0)
      • 제품 리뷰 (9)
    • __Dev__ (9)
      • Release (9)
반응형

인기 글

  • 웹 푸시 알림(Web Push Notification)
    2022.06.13
    웹 푸시 알림(Web Push Notification)
  • [Tomcat] 아파치 톰캣 서버 포트 변경하기
    2018.08.24
    [Tomcat] 아파치 톰캣 서버 포트 변경하기
  • [Node.js] 실시간 채팅 서비스 만들기(5) - 채팅⋯
    2018.05.31
    [Node.js] 실시간 채팅 서비스 만들기(5) - 채팅⋯
  • [C/C++] 콘솔게임 프로그래밍 (1) - 프로젝트 생성⋯
    2017.12.19
    [C/C++] 콘솔게임 프로그래밍 (1) - 프로젝트 생성⋯
  • [Vue 3] Composition API와 템플릿 참조(⋯
    2020.10.02
    [Vue 3] Composition API와 템플릿 참조(⋯

태그

  • javascript
  • composition-api
  • ES6
  • Java FX
  • Vue 3
  • spread syntax
  • Deemo
  • WWDC20
  • Hello World!
  • WWDC
  • vue.js
  • pwa
  • java
  • 이펙트
  • 파티클
  • Composition API
  • 전개 구문
  • AstroWar
  • vue-next
  • 이클립스
  • 자바
  • 출간
  • vuex
  • self
  • 자바 프로젝트
  • vue
  • Scanner
  • 프로그레시브 웹 앱
  • vue3
  • 웹 확장

최근 댓글

  • 어디에서도 이런 친절한 설명은 받을 수 없었습니다. 응용⋯
    미쳤다...
  • 정말 너무 감사합니다 선생님 많은 도움이 되고있습니다 어떻⋯
    김준태
  • 커서 위치이동 함수까지 했는데 컴파일하면 Makefile.⋯
    Qour94
  • iOS의 경우 애플에서 개발하고 있는 webkit 엔진을 ⋯
    이근둥
  • android, IOS에서 된다고 했는데 Notifica⋯
    삽자루부대

최근 글

  • 웹 푸시 알림(Web Push Notification)
    2022.06.13
    웹 푸시 알림(Web Push Notification)
  • 스택(Stack)
    2022.05.26
    스택(Stack)
  • 배열(Array)
    2022.05.25
    배열(Array)
  • C언어로 배우는 자료구조
    2022.05.24
    C언어로 배우는 자료구조
  • [Vue 3] Composition API와 템플릿 참조(⋯
    2020.10.02
    [Vue 3] Composition API와 템플릿 참조(⋯

블로그 메뉴

  • 홈
  • 미디어로그
  • 방명록
hELLO · Designed By 정상우.
이근둥

근둥이의 블로그

[Java] 표준 출력하기
언어 & 프레임워크/Java & JSP

[Java] 표준 출력하기

2017. 7. 14. 17:59
반응형

자바에서 데이터를 출력하는 방법을 알아보도록 하겠습니다.



C언어같은 경우에는 처음 배울 때 printf 라는 함수를 이용하여 데이터를 출력했습니다.




자바에서도 데이터를 출력하는 메소드(함수와 비슷한 개념)를 사용하여 데이터를 출력할 수 있습니다.





아래 소스코드를 보며 확인해봅시다.




System.out.print()

System.out.println()

System.out.printf()


위의 3가지 메소드가 대표적인 표준 출력 메소드입니다.


print() 메소드는 전달받은 데이터를 출력만 합니다.


println() 메소드는 출력하고 자동 개행을 합니다.

(개행이란 엔터키, 즉 한칸 아래로 내리는것을 뜻함)


printf() 메소드는 C언어와 같습니다.

서식문자를 사용하여 데이터를 원하는 형태로 출력이 가능합니다.



서식문자는 여러가지가 있지만 대표적으로 사용하는 서식문자 몇가지만

아래 표에서 간단히 확인하시길 바랍니다.



 서식문자

데이터 형태 

사용 예 

 %d

 정수

 printf("%d", 100);

 %f

 실수

 printf("%f", 0.53);

 %c

 문자

 printf("%c", 'A');

 %s

 문자열

 printf("%s", "Hello");


여러 서식문자와 문자열을 중복하여 사용할 수 있습니다.


printf("%d / %d = %.2f 입니다.", 43, 6, (float)43/6);

결과 => 43 / 6 = 7.17 입니다.




%f를 %.2f 와 같이 변형하여 사용할 수 있습니다.

(소숫점 아래 2자리까지 출력한다는 의미)





print나 println 메소드도 중복하여 사용이 가능하지만 + 문자를 이용해서 작성해야하는 번거로움이 있습니다.

또한 %.2f 와 같이 변형된 서식을 사용할 수 없습니다.

println(43 + " / " + 6 + " = " + (float)43/6);







아래 스크린샷은

위의 이미지에 있는 소스코드를 실행한 결과입니다.


이처럼 콘솔에 출력하는 메소드 3가지를 간단히 알아보았습니다.
















[심화학습]



System.out.메소드이름


C언어는 printf() 만 가져와서 쓰면 되는데 왜 자바는 System.out. 을 붙여야할까요?

쓸데없이 길고 복잡해보이기까지 합니다.




자바는 객체지향 언어입니다.

자바에는 상속이라는 개념이 있습니다.


자식이 부모의 자산을 물려받듯이 자바도 부모의 메소드, 멤버변수등을 상속받을 수 있습니다.


여기서 부모는 슈퍼클래스(Super Class)

자식은 서브클래스(Sub Class)

라고 부르기도합니다.


말만 어렵지 상속을 받는 클래스가 서브클래스,

상속을 당하는 클래스가 슈퍼클래스입니다.


상속에 대한 내용은 간단히 여기까지하고 다음에 자세히 설명하도록 하겠습니다.




 




자바의 최상위클래스는 "Object" 클래스입니다.



class MyClass { }

우리가 이렇게 클래스를 만들어서 사용했지만 자동으로 Object 클래스를 상속합니다.

( class MyClass extends Object { } ) 




System.out. ~~

의 의미는


System클래스 내부의 out이라는 이름으로 선언된 PrintStream 에게 접근한다는 뜻입니다.







[자바 표준 API 문서확인하기]

http://docs.oracle.com/javase/8/docs/api/index.html


스크린샷을 확인해보면 상단에 Object 클래스를 상속받은 System 클래스가 있습니다.


System 클래스는 static(전역) 으로 선언된 out 이라는 PrintStream 객체가 있습니다.




PrintStream클래스를 살펴보면 이 안에 print, println, printf 메소드가 있습니다.

복잡하게 상속되어있는것같지만 이는 매우 객체지향적으로 설계되어있습니다. 




우리가 System.out.print() 를 작성하여 호출하면


System클래스의 out이라는 PrintStream으로 접근하여 그 내부에 있는 print 메소드를 호출하는것입니다.


처음 접하시는분이라면 많이 어려울텐데 이해하려고 하지않으셔도 됩니다.

후에 자바를 더 배우고나서 정독하시면 분명히 이해하실 수 있을겁니다.




감사합니다.





반응형
저작자표시 동일조건
    '언어 & 프레임워크/Java & JSP' 카테고리의 다른 글
    • [Java] Scanner 클래스 / 입력받기
    • [Java] 변수선언 및 사용
    • [Java] 프로젝트 생성 및 Hello World! 출력하기
    • [Java] 자바 개발환경 준비하기(2) - Eclipse 설치
    java, print, 출력
    이근둥
    이근둥
    새로운 것을 좋아하는 프론트엔드 개발자 ✨
    댓글쓰기

    티스토리툴바