1章 Javaの世界に飛び込もう

ソースコードからコンパイラ
コンパイラバイトコードへ。このバイトコード仮想マシンが理解する。

コンパイル
Party.javaコンパイルするとParty.classができる。コンソールからコマンド「java Party」で実行できる。

Javaの歴史
Java1.02(250クラス) -> Java1.1(500クラス) -> Java2(2300クラス) -> Java5.0(1.5以降 3500クラス)

自分で考えてみよう-------------------------------------
int size = 27 //int型の変数sizeに27を代入
String name = "Fido"; //String型の変数name文字"Fido"を代入
Dog myDog = new Dog(name, size); //Dog型の変数myDogにnameとsizeを引数にしてDogオブジェクトを作る
X = size - 5; //変数Xにsizeから5をマイナスして代入 Xは宣言されていない
if(x < 5) myDog.bark(8); //xが5未満ならばDogクラスのbarkメソッドを8を引数にして実行
while (x > 3) { //xが3以上の間
myDog.play(); //Dogクラスのplayメソッドを実行
} //while閉じる

int[] numList = {2,4,6,8}; //int型の配列numListに2,4,6,8を代入
System.out.print("Hello"); //"Hello"と表示
System.out.print("Dog:" + name); //"Dog:"のあとに変数nameを表示
String num = "8"; //Strign型の変数numに文字8を代入
int z = Integer.parseInt(num); 変数numをint型に型変換を行いint型の変数zに代入
try { //必ず成功するとは限らない処理の実行を試みる
readTheFile("myFile.txt"); //myFile.txtを引数にしてreadTheFIleメソッドを実行
}
catch(FileNotFoundException ex){ //実行した処理が失敗した場合に実行される
System.out.print("File not found."); //例外をキャッチしたらこのメッセージを表示
}

                                                                        • -

Javaプログラム(ソースファイル)の構造
・ソースファイルの構成
ソースファイルをクラスで構成される。

public class Dog {

}

・クラスの構成
クラスはメソッドという要素から構成される。
右の図Dogクラスはbark()というメソッドが含まれています。
メソッドの本体部分も{で始まり}で終わる。

public class Dog {
void bark() {

}
}

・メソッドの構成
メソッドの間にはそのメソッドでどのような処理を行うかの指示が書かれています。
その単位を「ステートメント」という。

public class Dog {
void bark() {
statement1;
statement2;
}
}

■mainメソッド
Java仮想マシンはmainというメソッドを探す。
詳しく見て行きましょう。

public //どこからでも呼び出せるアクセス修飾子
class //クラスの宣言
MyFirstApp { //クラスの名前

public
static
void //void型は何も戻さないという意味
main //メソッドの名前
(String[] args) //Stringの配列を引数にして実行している
{
System.out.print("I Rule!");
}
}

■mainメソッドを持つクラス
Java仮想マシンはクラスファイルと同じ名前のクラスを探してそれをロードします。
・そのクラスの中のmainメソッドを探して中のステートメントを実行する。
・mainメソッドは実行の起点になるメソッド。
・いかにプログラムが大きくても実行には必ずmainメソッドが必要である。

■mainメソッドの中身
1.単純な命令系 (変数の宣言,代入,呼び出し)

int x = 3;
String name = "dark";

2.繰り返し行う系 (while,for)

while(x > 12) {

}

for (int i=0;i>12;i++) {

}

3.ある条件が満たされた時系(if,else)

if((x < 3 )&(name.equals(""Drink))) {

}

・ループ
while文は一定の条件が満たされている間、同じ処理を繰り返す。

・条件判定< 小なり
> 大なり
== 等しい

■素朴な疑問
Javaプログラムはクラスで構成されている
・mainメソッドが必要とされているのはひとつのクラスだけ
・int型とboolean型に互換性はない

■sysout.printとsysout.printlnの違い
・printだとすべての文字列が1つの行に固まって表示されますが、printlnだと文字列ごとに改行が行われる

■自分で考えてみよう
java DooBoo
DooBeeDooBeeDo

上記のような実行結果を得るとき、以下のプログラムに何を入れればいいか。

public class DooBee {
public static void main (String[] args) {
int x = 1;
while (x < 2) {
System.out.print("Doo");
System.out.print("Bee");
x=x+1;
}
if(x==2) {
System.out.print("Do");
}
}
}

p.14まで