■Report5
■課題
●講義資料オブジェクト指向プログラムJavaIの中のサンプルプログラムについて考察せよ。
■サンプルプログラム
◎ クラスとオブジェクト
|
*考察*
class CircleCについて
変数paiを宣言し、3.14を代入。変数circle(int r)を宣言。pai * r * r を実行する。
class Demoについて double型の変数areaを宣言。
クラスCircleCから新しいオブジェクトojb生成する。オブジェクト指向。
オブジェクトobj中のメソッドcircleを使用する。obj.circle(10)で10をCircleCに送る。
CircleCに送られた10はrに代入され、計算されてreturnされた値はareaに代入される。
メソッドprintlnでareaの値が表示される。
◎オブジェクト
class ObjSample { public static void main(String args[]) { Display obj = new Display(); // クラスDisplayのオブジェクトobj生成 obj.Disp("Hello Java"); // オブジェクトobjのメソッドDispを呼ぶ } } class Display { // クラスDisplayの定義 void Disp(String message) { // メソッドDispの定義 System.out.println(message); } } ※実行結果 Hello Java |
*考察*
最初のサンプルプログラムと違うのは、mainメソッドを最初で宣言したところ。 これはjavaがオブジェクト指向だから、定義される順番は関係しないということ。 下のクラスDisplayでメソッドDispを宣言し、上のクラスObjSampleで使用。
◎四則演算
public class Comp4 { // クラスComp4を定義 int add(int x, int y) { // メソッドadd(int x,int y)を定義 return x + y; // x + y を返す } int substract(int x, int y) { // メソッドsubstractを定義 return x - y; // x - y を返す } int multiply(int x, int y) { // メソッドmultiplyを定義 return x * y; // x * y を返す } int divide(int x, int y) { // メソッドdivideを定義 return x / y; // x / y を返す } } class Keisan { public static void main(String args[]) { int a, b, wa, sa, seki, sho; Comp4 enzan = new Comp4(); // クラスComp4のオブジェクトenzan作成 a = 20; b = 10; wa = enzan.add(a, b); // オブジェクトenzanのadd(a,b)を実行 sa = enzan.substract(a, b); // 同上のsubstract(a,b)を実行 seki = enzan.multiply(a, b); // 同上のmultiplu(a,b)を実行 sho = enzan.divide(a, b); // 同上のdivide(a,b)を実行 System.out.println(a + " + " + b + " = " + wa); System.out.println(a + " - " + b + " = " + sa); System.out.println(a + " * " + b + " = " + seki); System.out.println(a + " / " + b + " = " + sho); } } ※実行結果 20 + 10 = 30 20 - 10 = 10 20 * 10 = 200 20 / 10 = 2 |
*考察*
クラスComp4で、メソッドadd,substract,multiply,divideを定義。
クラスKeisanで、まずは変数a,b,wa,sa,seki,shoを宣言。 宣言した変数に値,式を代入。 printlnで表示。 ""でくくられた文字は文字列としてそのまま出力。 ++は文字列連結演算子で、変数と文字列を連結している。
◎ローカル変数とクラス変数
class Display { // 訂正 classs → class int n; // 訂正「;」を付け加えた クラス変数 void Disp() { int i; // ローカル変数 for (i = 1; i <= n; i++) System.out.print(i + " "); // 訂正 I → i } } // 訂正「}」を付け加えた class VarSample { public static void main(String args[]) { Display obj = new Display(); // クラスDisplayのオブジェクトobj生成 obj.n = 10; // オブジェクトobjの変数nに10を代入 obj.Disp(); // オブジェクトobjのDisp()実行 } } ※実行結果 1 2 3 4 5 6 7 8 9 10 |
*考察*
まず、クラスDisplayでクラス変数の"n"ローカル変数"i"を宣言。 (クラス変数とローカル変数の違いは、メソッド「 void Disp(){ 」の中と外の違いである.) for文で、iがnになるまで出力する。 obj.n = 10; で、クラスDisplayのオプジェクトobjの変数nに10を代入。 つまり、iが10になるまで繰り返す。 最後にオプジェクトobjのDisp()を実行
■オリジナルプログラム
public class repo5_1{ // クラスRepo5_1を定義 |
■感想・反省
サンプルが非常に多かったです。結構、時間を取られました。
その分、しっかりと理解し、使いこなせるように努力したつもりです!!