・プログラム(1)
1: class CircleC { // クラス
2: double pai = 3.14; // データ
3: double circle(int r) { // メソッド
4: return pai * r * r;
5: }
6: }
7: class Demo { // クラス
8: public static void main(String args[]) { // メソッド
9: double area;
10: CircleC obj; // オブジェクト
11: obj = new CircleC();
12: area = obj.circle(10);
13: System.out.println("area = " + area);
14: }
15: }
・実行結果
[nw0451:~/java/Rep5] j04051% java Demo
area = 314.0
考察
・プログラムについて
1: class CircleC {
CircleCというクラスを宣言。classはクラス宣言の始まりを表す予約語である。
2: double pai = 3.14;
double型のpaiを宣言し、そのpaiに3.14を代入する。
3: double circle(int r) {
3行〜5行は、circleメソッドの宣言である。int型の引数 r を1つだけ持ち、double型の計算結果を返すcircleというメソッドである。
4: return pai * r * r;
return文という構文。returnの次にくる式が、そのメソッドの戻り値となる。つまり、pai*r*rの計算結果が戻り値となる。
7: class Demo {
Demoというクラスを宣言。classはクラス宣言の始まりを表す予約語である。
8: public static void main(String args[]) {
8行〜14行は、mainメソッドの宣言。mainメソッドが、実行開始位置である。
9: double area;
double型のareaを宣言。
10: CircleC obj;
Circleにobjというオブジェクトを宣言。
11: obj = new CircleC();
Circle型として宣言した変数に、新しく作ったCircleクラスのインスタンスを代入する。
12: area = obj.circle(10);
circleメソッドを呼び出している。このときcircleの引数 r に10を代入する。pai*r*rを計算し、その答えを戻り値としてDemoメソッドに戻る。戻り値である314.0をareaに代入する。
13: System.out.println("area = " + area);
areaの値を表示する。
・プログラム(2)
1: class ObjSample {
2: public static void main(String args[]) {
3: Display obj = new Display(); // クラスDisplayのオブジェクトobj生成
4: obj.Disp("Hello Java"); // オブジェクトobjのメソッドDispを呼ぶ
5: }
6: }
7: class Display { // クラスDisplayの定義
8: void Disp(String message) { // メソッドDispの定義
9: System.out.println(message);
10: }
11: }
・実行結果
[nw0451:~/java/Rep5] j04051% java ObjSample
Hello Java
考察
・プログラムについて
1: class ObjSample {
ObjSampleというクラスを宣言。classはクラス宣言の始まりを表す予約語である。
2: public static void main(String args[]) {
2行〜5行は、mainメソッドの宣言である。mainメソッドが実行開始位置である。
3: Display obj = new Display();
Displayクラスにobjオブジェクトを新しく作る。
4: obj.Disp("Hello Java");
Dispメソッドを呼び出している。このときDispの引数messageに"Hello Java"を代入する。
7: class Display {
Displayというクラスを宣言。classはクラス宣言の始まりを表す予約語である。
8: void Disp(String message) {
8行〜10行は、Dispメソッドの宣言である。String型の引数messageを1つだけ持つ。voidを戻り値の型としているので、Dispメソッドは戻り値の無いメソッドとなる。
9: System.out.println(message);
messageに代入されている値を表示する。
・プログラム(2)
1: public class Comp4 { // クラスComp4を定義
2: int add(int x, int y) { // メソッドadd(int x,int y)を定義
3: return x + y; // x + y を返す
4: }
5: int substract(int x, int y) { // メソッドsubstractを定義
6: return x - y; // x - y を返す
7: }
8: int multiply(int x, int y) { // メソッドmultiplyを定義
9: return x * y; // x * y を返す
10: }
11: int divide(int x, int y) { // メソッドdivideを定義
12: return x / y; // x / y を返す
13: }
14: }
15:
16: class Keisan {
17: public static void main(String args[]) {
18: int a, b, wa, sa, seki, sho;
19: Comp4 enzan = new Comp4(); // クラスComp4のオブジェクトenzan作成
20: a = 20;
21: b = 10;
22: wa = enzan.add(a, b); // オブジェクトenzanのadd(a,b)を実行
23: sa = enzan.substract(a, b); // 同上のsubstract(a,b)を実行
24: seki = enzan.multiply(a, b); // 同上のmultiplu(a,b)を実行
25: sho = enzan.divide(a, b); // 同上のdivide(a,b)を実行
26: System.out.println(a + " + " + b + " = " + wa);
27: System.out.println(a + " - " + b + " = " + sa);
28: System.out.println(a + " * " + b + " = " + seki);
29: System.out.println(a + " / " + b + " = " + sho);
30: }
31: }
・実行結果
[nw0451:~/java/Rep5] j04051% java Keisan
20 + 10 = 30
20 - 10 = 10
20 * 10 = 200
20 / 10 = 2
考察
・プログラムについて
1: public class Comp4 {
Comp4というクラスを宣言。publicはアクセス制御を表し、classはクラス宣言の始まりを表す予約語である。
2: int add(int x, int y) {
3: return x + y;
4: }
addメソッドの宣言。int型の引数xとyを持ち、int型の計算結果を返すaddメソッドである。returnの次にくる式が、メソッドの戻り値となる。つまり、x+yの計算結果が戻り値となる。
5: int substract(int x, int y) {
6: return x - y;
7: }
substractメソッドの宣言。int型の引数xとyを持ち、int型の計算結果を返すsubstractメソッドである。returnの次にくる式がメソッドの戻り値となる。つまり、x-yの計算結果が戻り値となる。
8: int multiply(int x, int y) {
9: return x * y;
10: }
multiplyメソッドの宣言。int型の引数xとyを持ち、int型の計算結果を返すmultiplyメソッドである。returnの次にくる式がメソッドの戻り値となる。つまり、x*yの計算結果が戻り値となる。
11: int divide(int x, int y) {
12: return x / y;
13: }
divideメソッドの宣言。inf型の引数xとyを持ち、int型の計算結果を返すdivideメソッドである。returnの次ぎにくる式がメソッドの戻り値となる。つまり、x/yの計算結果が戻り値となる。
16: class Keisan {
Keisanというクラスを宣言。classはクラス宣言の始まりを表す予約語である。
17: public static void main(String args[]) {
mainメソッドの宣言。mainメソッドが実行開始位置である。
18: int a, b, wa, sa, seki, sho;
int型の変数a、b、wa、sa、seki、shoを宣言。
19: Comp4 enzan = new Comp4();
Camp4クラスに、enzanオブジェクトを新しく作る。
20: a = 20;
21: b = 10;
変数aに20を代入し、変数bには10を代入する。
22: wa = enzan.add(a, b);
addメソッドを呼び出す。このときaddメソッドの引数xとyにa、bを代入する。addメソッドの戻り値をwaに代入する。
23: sa = enzan.substract(a, b);
substractメソッドを呼び出す。このときsubstractの引数xとyに、a、bを代入する。substractメソッドの戻り値をsaに代入する。
24: seki = enzan.multiply(a, b);
multiplyメソッドを呼び出す。このときmultiplyの引数xとyに、a、bを代入する。multiplyメソッドの戻り値をsekiに代入する。
25: sho = enzan.divide(a, b);
divideメソッドを呼び出す。このときdivideの引数xとyにa、bを代入する。divideメソッドの戻り値をshoに代入する。
26: System.out.println(a + " + " + b + " = " + wa);
aとbの値と、waの値を表示し、改行される。
27: System.out.println(a + " - " + b + " = " + sa);
aとbの値と、saの値を表示し、改行する。
28: System.out.println(a + " * " + b + " = " + seki);
aとbの値と、sekiの値を表示し、改行する。
29: System.out.println(a + " / " + b + " = " + sho);
aとbの値と、shoの値を表示し、改行する。
・プログラム(3)
1: class Display {
2: int n; // クラス変数
3: void Disp() {
4: int i; // ローカル変数
5: for (i = 1; i <= n; i++)
6: System.out.print(i + " ");
7: }
8: }
9:
10: class VarSample {
11: public static void main(String args[]) {
12: Display obj = new Display(); // クラスDisplayのオブジェクトobj生成
13: obj.n = 10; // オブジェクトobjの変数nに10を代入
14: obj.Disp(); // オブジェクトobjのDisp()実行
15: }
16: }
・実行結果
[nw0451:~/java/Rep5] j04051% java
1 2 3 4 5 6 7 8 9 10
考察
・プログラムについて
1: class Display {
Displayというクラスを宣言。classはクラス宣言の始まりを表す予約語である。
2: int n;
int型の変数nを宣言。メソッド外で宣言されているため、クラス変数になる。
3: void Disp() {
Dispメソッドの宣言。voidを戻り値の型としているので、Dispメソッドは戻り値の無いメソッドとなる。
4: int i;
int型の変数iを宣言。メソッド内で宣言されているため、ローカル変数(局所変数)となる。
5: for (i = 1; i <= n; i++)
6: System.out.print(i + " ");
7: }
iの初期値を1とし、iがn以下の間、処理を繰り返す。条件文が真の時、iとスペースを表示する。
10: class VarSample {
VarSampleというクラスを宣言。classはクラス宣言の始まりを表す予約語である。
11: public static void main(String args[]) {
mainメソッドの宣言。mainメソッドが、実行開始位置である。
12: Display obj = new Display();
Displayクラスにobjオブジェクトを、新しく作る。
13: obj.n = 10;
オブジェクトobjの変数nに10を代入する。
14: obj.Disp();
Dispメソッドを呼び出す。