mainメソッドとprintlnについて
メソッドは、自分で自由に定義することもできますが、その他に「あらかじめ使い方が決まっている」というものもあります。今回使った「public static void main(String[] args)」というメソッド(mainメソッド)も、そうしたものの一つです。
これは、Java仮想マシンでプログラムを実行したとき、最初に呼び出され実行されるメソッドです。ここに処理を記述しておくと、プログラム実行時にそれらが自動的に実行されます。言い換えれば、「mainメソッドがないクラスは、Java仮想マシンで起動できない」とも言えます。
このmainメソッドは、必ず「public static void main(String[] args)」という形で書く、と暗記してしまってください。まだ「static」とか「String[] args」とか、よくわからないでしょうが、今は「わからなくてもいいから、丸暗記する」と考えてください。これらはいずれどういうものかわかってきますから。
さて、今回のサンプルでは、mainメソッドの中で次のような文が1行だけ書かれていました。
System.out.println( 値 );
この「System.out.println」というのは、その後のカッコ内にある値を出力するメソッドです。「メソッド」? そうです、クラスの中に定義しておくという、アレです。
Javaでは、すべてのプログラムは「クラス」や「メソッド」、そして「フィールド」といったものの組み合わせで作られています。これは、自分が作成するプログラムだけの話ではありません。Javaに標準で用意されているさまざまな命令(に相当するもの)についても同様なのです。Javaで使える機能は、すべてクラスとして用意され、その中にあるメソッドやフィールドを呼び出して処理を実行したり値を取り出したりします。
ここで実行している文も、そうした「Javaに標準で用意されているクラス」の機能を呼び出しているものです。この「System.out.println」というのは、「System」というクラスに用意されているものです。これは、「Systemクラスの中のoutフィールドに入っているモノの中からprintlnというメソッドを呼び出す」ということを行っています。
これも今の段階では、「何かを表示させたいときは、System.out.printlnと書く」と丸暗記してしまってください。――なんだか「丸暗記する」ということが続けざまに登場してしまいましたが、これはもう少しJavaについて理解できるようになれば自然と理解できるようになるものですので、今はあまり深く考えないでおきましょう。
いろいろな値を出力してみる
とりあえず、サンプルで作ったソースコードがどういうものか、漠然とですが見えてきましたね。では、これを少しだけ書き換えて、いろいろ実験をしてみることにしましょう。
public class Sample { public static void main(String[] args){ System.out.println("日本語も表示できます"); } }
これは、先ほどのサンプルの中で、System.out.printlnの後のカッコ部分だけを書き換えてみたものです。"My First Java Program!"の代りに、"日本語も表示できます"としてみました。これで、日本語のテキストが表示されます。
テキストというのは、こんな具合にその前後をダブルクォート記号(")でくくって記述をします。"ABC"といった具合ですね。こうすれば、日本語だろうと英語だろうと表示させることができます。
では、数字の場合はどうなるでしょうか。これも、サンプルを書き換えて試してみることにしましょう。
public class Sample { public static void main(String[] args){ System.out.println(12345); System.out.println(123 + 45); } }
今度は、12345という数字と、123 + 45という式の答えを表示されています。数字の場合は、System.out.printlnのカッコ内にそのまま数字を書けばOKです。また、System.out.println(123 + 45);を見れば分かるように、このカッコ内に計算の式を書くと、その結果が出力されます。計算で使う四則演算の記号は、テンキーのところにある「+」「-」「*」「/」がそのまま使えます。
とりあえず、これで「テキスト」と「数字」、そして「四則演算した答え」といったものを画面に表示させることができるようになりました。まずは、今回のサンプルをいろいろと書き換えて、さまざまな値を出力させてみましょう。そして、どう書けばちゃんと動くのか、どう書くと動かないのか、そうしたことをいろいろと試して確かめてみてください。値については、次の回でもう少ししっかり説明しますから、今はあまりきっちりと考えなくてかまいません。たくさん試し、たくさんエラーに出くわすほど、プログラミングは上達します。「動かない」ことを恐れるな!
まとめ
……というわけで、とりあえず「Javaを使える状態にする」「ソースコードを書く」「コンパイルする」「実行する」「プログラムを構成するクラスとメソッド、フィールドについて大雑把に頭に入れておく」というところまでを説明しました。初めてプログラミングに挑戦する人にとっては、頭の回りを「?」マークがぐるぐる飛び交っていることでしょう。それで、いいんです。たったこれっぽちの説明で、すべてすっきり理解できた! というのは無理な相談です。
Javaは、一般的なプログラミング言語としての文法だけでなく、「オブジェクト指向」と呼ばれる概念の知識、そして標準で用意されている多数のクラス類の活用法など、膨大な知識を頭に詰め込んで、ようやく「なんとか使えるレベルのものが書けるようになる」というものなのです。ですから、まだ基礎的な知識が身についていない段階では、何を読んでも「???」とわけがわからないはずです。
慣れない内は、細かな用語や固有名詞などを暗記することよりも、全体のイメージを大雑把にとらえることを考えるようにしてください。Javaというものが、全体としてどんな感じで動いているのか、その大まかな仕組みを、「なんとな~く、こんな感じになってるんじゃないかな~」ぐらいに把握できるようにしましょう。


