プログラム例
次のようにクラスを引数にすることができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
package jp.ayax.object; public class Main { public static void main(String[] args) { Process1 p1 = new Process1(); sub(p1); } public static void sub(Process1 p1){ System.out.println(p1.getNum1()+p1.getNum2()+p1.getNum3()); p1.step1(); } } class Process1 { int num1 = 12; int num2 = 34; int num3 = 44; String str = "abc"; public int getNum1(){return(num1);} public int getNum2(){return(num2);} public int getNum3(){return(num3);} public String getStr(){return(str);} public void step1(){ System.out.println("step1"); } } |
7行目でProcess1クラスのインスタンスを引数としてメソッドsubを呼び出しています。
7 |
sub(p1); |
9行目で引数を「クラス名 変数」で受け取っています。
9 |
public static void sub(Process1 p1){ |
受け取った変数p1を利用することによりクラスのメソッドが利用できます。
10 11 |
System.out.println(p1.getNum1()+p1.getNum2()+p1.getNum3()); p1.step1(); |
使いどころ
多くの引数がある場合には、「第1回 クラスはデータだ!」で登場したように、クラスをデータセットとして考えて引数にします。するとスッキリとしてプログラムになります。
「クラス=処理」と考えると違和感があるかもしれませんが、「クラス=データセット」と考えてみると積極的に利用しても抵抗を感じないかもしれません