画面に文字を表示しよう
Javaについて
Javaの誕生
1991年ごろにアメリカのSun Microsystems社が、家電製品用ソフトウェアの開発の為にプログラミング言語が作られ、改良が重ねられ、Javaになりました。注目された理由は、Webブラウザ上で動作する「アプレット」という小規模なプログラム開発ができたことでした。
Javaの特徴
- 無料で提供される…Javaの開発ツールは無料で提供され、開発環境を準備しやすいです。
- 一度作成すれば、どこでも実行できる…一般的には、プログラミング言語で作成したプログラムは、特定の機器や環境でのみ動作しますが、Javaで作成したプログラムは動作環境が整っていれば、どこでも動きます。
- C言語やC++に似た構文…Javaの文法体系は、C言語やC++を参考に作られているので、それらの言語を経験していればとっつきやすいです。
- 強い型付け…プログラムでは、整数、実数、文字などの多くのデータ型を扱います。各種の演算において、厳密に開発ツールでチェックされるので、信頼性の高いプログラムが作りやすいです。
- オブジェクト指向プログラミングのサポート…クラスによるカプセル化、継承、多相性といったオブジェクト指向プログラミングを実現する技術がサポートされています。
- 複数のライブラリ…Javaでは基本の機能がAPIとして多数、提供されているので、目的の処理を簡単に行うことが可能です。
- ガーベジコレクションによる記憶管理…Javaでは、不要になったオブジェクトの開放処理が自動的に行われるので、オブジェクトの管理が簡単になります。
- 例外処理… 予期せぬエラーなどの例外的な状況に遭遇した時の処理を、スムーズに行えるようになっているので、頑丈なプログラム開発ができます。
- 並行処理…1つのプログラム内で、複数の処理を同時に実行できます。
- パッケージによるクラスの分類…Javaのクラスをパッケージごとに分類でき、膨大な数のクラスを効率よく管理できます。
Javaの発展
Javaは、頻繁にバージョンアップを重ねており、開発容易性(EoD)を重視しています。特にバージョン1.2と5.0(1.5)では、文法体形が大きく変わり、沢山の機能が加わりました。
文字の出力
Step1-1で環境設定が済んでいるのなら、プログラムを作成して確認してみましょう。
プログラムの作成と実行
最初に作るのは、コンソール画面に文字を表示するプログラムになります。「Test.java」ファイルを作成し以下のようにソースを入力して見ましょう。
//画面への出力を行うプログラム
public class Test {
public static void main(String[] args) {
System.out.println("初めてのプログラム");
System.out.println("Hello, World!");
}
}
実行すると、次のようにコンソールに文字列が出力されます。
※プログラム中の余白や「”」などの記号は全角文字で打ち込まないように気を付けましょう。余白の部分は、スペース・タブ・エンターキーを用いて打ち込みます。
ソースプログラムとソースファイル
プログラムは文字の並びとして作成し、そのようなプログラムをソースプログラムと呼び、ソースプログラムを格納したファイルのことをソースファイルと呼びます。
ソースファイルは、classの後ろに書かれているクラスの名前(このプログラムではTest)に拡張子.javaを加えた名前とするのが原則です。したがって、ソースファイルの名前は、Test.javaとなります。
プログラムのコンパイルと実行
ソースプログラムを作成してもそのままでは実行できないので、2つの手順を実行する必要があります。
1.コンパイル
コンパイル(compile)とは、そのままでは実行できないソースプログラムを実行できる形式に変える作業になります。(バイトコードを生成する)
2.実行
コンパイルに成功したら、「.class」の拡張しを持つファイルが生成されるます。このファイルから、クラスを読み込んで実行します。
コメント(注釈)
先ほど、記述したプログラムに注目していきましょう。
// 画面への出力を行うプログラム
先頭にある連続する2個のスラッシュ記号「//」は、プログラムそのものではなく、プログラムに対してのコメント(comment)になります。コメントの内容はプログラム動作に影響を与えません。ここには、プログラムの読み手に伝えたいことを簡潔に記述しましょう。
コメントの記述方法は以下の3つがあります。
1.伝統的コメント(traditional comment)
コメントを「/*」と「*/」で囲みます。
/* 画面への出力を行うプログラム */
複数行にわたるコメントの記述に効果的な方法です。なぜ、伝統的かというと、C言語のコメント形式と同じで古くから使われているからです。
2.文書化コメント(documentation comment)
コメントを「/**」と「*/」で囲みます。
/** 画面への出力を行うプログラム */
伝統的コメントと同様に、複数行にわたってコメントが書けます。この形式のコメントから、プログラムの仕様書となるドキュメントを作成できます。
3.行末コメント(end of line comment)
「//」から、その行の末端までがコメントになります。
// 画面への出力を行うプログラム
複数行にわたってコメントできないので、短いコメントの記述に使います。
プログラムの構造
次にコメント以外のプログラム本体部分に注目していきましょう。
クラス宣言
上の図の青い部分はプログラム全体の骨組みになります。クラスという骨組みを宣言するということです。以下のように書くと覚えておけば、大丈夫です。
class クラス名{
// mainメソッド他
}
クラス名の先頭文字は、大文字が基本となります。また、ソースファイルの名前は、大文字・小文字の区別を含めてクラス名と同一でないといけません。
mainメソッド
上の図の白い部分は、mainメソッドの宣言になります。「public static void…」の部分は後ほど説明しますが、この部分を決まり文句として覚えましょう。
public static void main(String[] args){
// 行うべき処理
}
文
プログラムを起動して実行すると、mainメソッド中の文(statement)が順に実行されます。
重要なことは以下の2つです。
- Javaプログラムの本体はmainメソッドで、プログラム実行時には、文が上から順に実行される
- 文は原則、セミコロンで終わる
文字列リテラル
コンソール画面に出力を行う文に注目しましょう。
System.out.println("初めてのプログラム");
System.out.println("Hello, World!");
最初に「初めてのプログラム」と「Hello, World!」に着目します。二重引用符「””」で囲んだ文字の並びを文字列リテラル(string literal)と呼びます。リテラルとは「文字通りの」という意味で、例えば文字列リテラル”あいうえお”は5個の文字の並びとして表されます。
コンソール画面への出力とストリーム
コンソール画面を含め、外部との入出力にはストリーム(stream)を利用します。ストリームとは文字が流れる川のようなものになります。
「System.out」は、コンソール画面と結びつくストリームであって、標準出力ストリーム(standard output stream)と呼ばれます。続く、「println」は、()内の内容を表示した後に改行を行います。図で表すと以下のようになります。
「println」のlnは、lineの略で行を表します。ただのprintでは、改行が行われません。このような依頼された処理を行うprintやprintlnは、プログラムの部品になります。これらをメソッド(method)と呼びます。
文字列の連結
複数の文字列リテラルを「+」で結んだら、連結されます。そのことをを利用して前のプログラムを書き直すと以下のようになります。
//画面への出力を行うプログラム
public class Test {
public static void main(String[] args) {
System.out.println("初めてのプログラム" + "Hello, World!");
}
}
長くて一行に文字列の表示などには+を挟むことでわかりやすく記述できます。
改行
文字列リテラルには、改行文字を示す表記「\n」を埋め込むことができます。パソコンによっては、バックスラッシュ(\)が円記号(¥)として表示されることもありますがプログラムでは、別の文字として扱われます。以下のように記述します。
public class Test{
public static void main(String[] args) {
System.out.println("こんにちは\nJava!!");
}
}
記号文字の読み方
他にもJavaのプログラムで利用する記号文字があるので、以下に記載しておきます。
記号 | 読み方 |
+ | プラス符号 プラス たす |
– | マイナス符号 マイナス ひく ハイフン |
* | アスタリスク かけ こめ |
/ | スラッシュ |
$ | ドル ダラー |
% | パーセント |
. | ピリオド ドット 小数点文字 |
, | コンマ カンマ |
: | コロン ダブルドット |
; | セミコロン |
‘ | 一重引用符 シングルクォーテーション |
“ | 二重引用符 ダブルクォーテーション |
( | 左括弧 パーレン |
) | 右括弧 パーレン |
{ | 左波括弧 ブレイス |
} | 右波括弧 ブレイス |
[ | 左角括弧 ブラケット |
] | 右角括弧 ブラケット |
< | 小なり 左向き不等号 |
> | 大なり 右向き不等号 |
? | 疑問符 ハテナ クエスチョン |
! | 感嘆符 ビックリ エクスクラメーション |
& | アンド アンパサンド |
~ | チルダ ※JISコードでは、オーバーライン |
‾ | オーバーライン 上線 アッパーライン |
^ | アクサンシルコンフレックス ハット |
# | シャープ ナンバー |
_ | アンダーライン 下線 アンダーバー |
= | 等号 イコール |
| | 縦線 |
\ | バックスラッシュ ※JISコードでは¥ |
\ | 円記号 円マーク |
自由形式記述
まずは、以下のコードを見てください。実行結果は同じですが、読みにくいと思います。
public class
Test{
public static
void main(String[]
args) {
System . out.
println("こんにちは\nJava!!");
}
}
一部のプログラミング言語は、「プログラムの各行を、決められた桁位置から記述しないといけない」などの制約があります。しかし、Javaプログラムは制約を受けません。それは、自由形式(free formatted)が許されてるからです。ただ、若干の制限もあります。
- 単語の途中にホワイトスペースを入れてはいけない
- 文字列リテラルの途中で改行してはいけない
インデント
プログラムの構造を掴みやすくするためには、記述の際に読みやすくする必要があります。文を段落で管理するためにインデントを用います。文の左側に設ける余白をインデントと呼び、これを用いた記述をインデンテーション(段付けする、字下げする)と言います。