JAVAの基礎


画面に文字を表示

オブジェクト指向型言語である Java は、プログラムの流れではなく役割に着目します
C 言語のような手続き型言語はコードを集積したルーチンで組み立てましたが
オブジェクト指向型言語は、システムの一部となる部品単位で開発を進めます
この、小規模なプログラムの部品のことをクラスと呼びます
Java プログラムは、必ずひとつ以上のクラスから構成されます
class class-name {
	Javaの命令
}
class-name のところにクラス名を記述します
このように、Java は必ず一つ以上のクラスの宣言をします

さらに、あらゆる Java アプリケーションはmain()メソッドから開始されます
メソッドとはクラスの振る舞いであり、ここに手続き的なコードを記述します
C 言語で言う関数、BASIC でいうサブルーチンに似ていますが
これが、何らかの役割を持ったオブジェクトに関連付けられている点で異なります

メソッドは情報を受け渡ししながら、指定されたプログラムを実行します
たとえばレジを考えましょう。レジ打ちのバイトさんがオブジェクトと考えます
メソッドを呼び出すのはお客さんです

お客が来てはじめて、レジを打つというメソッドが働きます
このときお客はメソッドに情報を渡します
この情報はひとつとは限らず複数でもかまいません
この場合は「商品」と「お金」ですね
この情報のことを引数といいます

レジのバイトは商品が指定する金額に、渡されたお金が等しいかどうか確認します
渡された金額が商品の指定金額と等しければ「商品だけ」を返します
商品の指定金額よりも多く金額を受け取れば、「商品とオツリ」を返します
商品の指定金額よりも渡されたお金が低ければ、警告を出します(例外と呼びます)
このように、メソッドが呼び出し元に返す値を戻り値といいます

現代のオブジェクト指向プログラムは全てがこうして情報を与え合っているのです
それは単体のプログラムの中でもそうですし、OSとアプリケーションの間でも同じことが言えます

main()メソッドは以下のようになります
public static void main(String args[ ]) {
	statements;
}
main()メソッドの前を見ると、3つのキーワードに分かれているのがわかりますね
publicとstaticは後記します。この場では説明のしようがありません

voidは先ほど話した戻り値の設定です
voidキーワードはこのメソッドに戻り値が存在しないことを表します

(String args[])はこのメソッドが受け取る引数です
詳しくは後記します。この場ではここでメソッドが情報を受け取るというとこを知ってください

statementsは、このメソッドが実行する命令内容です
もちろんメソッドの中にメソッドが存在したりします
たとえば文字を出力したい時は println() メソッドを使います
メソッドやクラスの内容を記述するときは { } でその内容を囲みます
また、Java 言語の分の一部には終了部分にセミコロン ; を付けるというお約束があります


Java言語は大文字と小文字を区別します
voidを Void とか VOID と書いてはエラーが出るので注意して下さい
というところで、これまでのことを意識しながら以下のプログラムを作成してください
class test {
        public static void main(String args[]) {
		System.out.println("よりによってジョースターの末えいが");
		System.out.println("このJavaの世界に入門してくるとはぁぁ");
	}
}
Java言語はステートメントの途中など以外では、自由に空白やtab、改行を入れることができます
しかし、ソースの可読性を考えて { の中はタブによるインデントを入れるという(暗黙の)お約束があります
(もちろん守らなくてもプログラムのエラーにはなりませんが、見ずらいソースになってしまいます)

このプログラムを書いたら test.java という拡張子で保存します
Java のソースファイル名はクラス名と同じにしなければなりません
MS-DOSのコマンドラインからコンパイルするには
以下のコマンド指定します(パスはあらかじめ通すこと)

javac test.java

コンパイルが終了すると test.class というファイルが作成されていたはずです
このtest.classファイルがコンパイルされて作成されたバイトコードです

このバイトコードをJVMが読み取ることではじめてJavaアプリケーションが実行されます
コマンドラインから以下のコマンドを実行します

java test

classpathが設定されている場合、上手く実行されない場合があるので注意してください
(その場合は、設定を削除するなりしてください。ただしそのために起動できなくなるアプリケーションが出るかも…)

さて、このプログラムを実行すると(" ")に囲まれた文字列が出力されます
ダブルクォーテーションで囲まれた出力命令には日本語を使うことができます(もちろん英語も)
System.out.println()について、詳しくは後記します
とりあえず println() メソッドは渡された引数を文字列として出力し、改行文字を付け足すということを覚えてください


エスケープシーケンス

もし画面に ダブルクォーテーションは " のことです と出力したい場合はどうしましょう
プログラムの中でダブルクォーテーションを使うことはできません。ダブルクォーテーションを使った時点で文字列の終了を意味してしまいます

さらに、改行の度に System.out.println() と書くのも面倒ですね
あるいはタブでインデントさせたい場合なども考えられます

このような特殊な文字表現をしたい場合はエスケープ文字 \を使います
class test {
	public static void main(String argv[]) {
		System.out.println("\"名前\t吉井和哉\n 職業\t死んだら新聞に載るようなロックスター\"");
	}
}
\tの部分はタブが、\nは改行されます
\"はダブルクォーテーションを表現します。これで文字列の中でダブルクォーテーションを表現できます
詳しいことはエスケープシーケンス一覧をご覧下さい


コメント

本格的なプログラムやプロジェクトになると、プログラムが長期にわたることが考えられます
そのような場合、ソースを見直したときに変数などが何に使われているかわかるようにコメントを残すことができます

コメントはコンパイル時にコンパイラから無視されるのでプログラムには影響がありません
共同開発や拡張を予想するプログラムはコメントを残すのが一般的です
(コメントを残すことで、デバックが容易になったりするので重要です)

Java言語のコメントはC/C++と同じ単一行コメントと複数行コメントがあります
単一行コメントは // 以降その一行がコメントと見なされます

// これはコメントです

複数行コメントは /* をコメントの開始として */ までをコメントとします

/*C言語プログラマにとっては
このコメントもまた定番ですね*/

しかしJava言語にはもうひとつドキュメンテーションコメントというコメントがあります
これは /** を開始として */ を終了とするコメントです

/**java特有の
ドキュメンテーションコメントです*/

これは、JDKに付属しているjavadocというツールを使ってソースからコメントを抜き出すことができます
以上の3つがJava言語のコメントです
拡張やデバッグのことを考えて、わかりやすいコメントを残すのも大切なことです



前のページへ戻る次のページへ