System.out.printlnについてより深く理解する
Javaで文字列を画面に表示させるとき,多くの場合はSystem.out.printlnやSystem.out.printを使うことが多いと思います.入門書などでHello Worldを表示するときに難しくなるのを避けるために何の説明もなくそれらのメソッドを使い,そのまま使い続けるという人もいるのではないかと思います.ただ,画面を表示するためだけに結構なタイプ数を要するため面倒臭いと思っている人もいると思います.そこで,今回はSystem.out.printlnを見つめ直してどうすればもう少しタイプ数を減らせるかや画面表示はどのように使用されているかを説明していきたいと思います.
タイプ数を減らして画面表示
System.out.printlnはjava.langパッケージにあるSystemクラスのフィールドにあるPrintStream型のoutのprintlnメソッドを呼び出すことで画面表示しています.次のようにimport文を書くことでout.printlnとするだけで文字列の画面表示ができるようになります.
import static java.lang.System.out;
このimport文を書くことで画面表示の際に毎回「System.」を書く必要がなくなります.一見大したことがなさそうに思えますが,変数の内容などを見る際に使うことからかなり使用頻度が多いため,「System.」を書かなくて良くなることは開発の効率向上に繋がります.
そのほかの画面表示の書き方
Javaでの画面表示は上記の方法以外でも可能です.文字列の画面表示というのは標準出力に文字列を出力することで実現しています.標準出力というのはプログラムが主にディスプレイに書き込むデータのストリームを意味しています.ストリームというのはデータを流れるものとして考え,データの流れ自体のことを指します.OSで制御されているストリームにネットワークやファイル,メモリなど様々なものがあります.これらをJavaなどのプログラムで操作することができ,ストリームを制御できるようになります.先ほども述べたましたが,画面表示はストリームの制御の一種で,プログラム内で生成した文字列を画面に表示するというストリームの制御を意味しています.以下に文字列の出力を標準出力と明示して画面表示を行うプログラムの一例を示します.
import java.io.PrintStream; import java.lang.System; public class UsePrintWriter { public static void main(String[] args) { PrintStream p = new PrintStream(System.out); p.println("hello"); } }
このプログラムの中で標準出力にあたるのは「System.out」です.PrintStreamではコンストラクタで出力先を指定でき,今回使用した「System.out」の他にFileオブジェクトを使ってファイルに書き込むこともできます.おそらくほかの色々な出力先に出力できるようになると思いますが,その他に方法があるので絶対にこれを使う必要はないです.
終わりに
今回はJavaでの文字列の画面表示を行う「System.out.println」の他の書き方について説明しました.1つだけ上記にあるようなimport文を書くだけでタイプ数を減らして開発効率を上げることができることがわかりました.「System.out.println」から「out.println」となることで7タイプ数減らせるわけですが,これが積み重なると大きくタイプ数を減らせることがわかります.
タイプ数を減らす書き方の他に,出力先を標準出力することを明示する書き方についても説明しました.この書き方について説明したのはプログラム内で生成された文字列などがどのように画面に表示されるのかを意識していただくためです.おそらく入門書でこの書き方で画面表示を行うやり方を書いているものは少ないと思います.入門書を読んでプログラミング入門したてのときは入門書で読んだプログラムしか知らない状態で,自分がこの他にプログラミングで何が出来るかわからないと思います.今回紹介した書き方はストリームという概念を知ることで書くことができます.
OSなどの動作を理解する上では重要になることなど,入門書では紹介されていない概念を調べて理解することでプログラムの書き方の幅が広がり,書くことが出来るプログラムが増えます.これがプログラミングの上達に繋がると考えているため出力先を標準出力することを明示する書き方を説明しました.