JAVA入門⑤ クラスの定義 (フィールド、メソッド、コンストラクタの定義) 簡単JAVA説明⑭ クラスとは? " Hello " 、 " JAVA "と言う文字列は皆Stringクラスの インスタンス(具体的なもの)を表します。 " "で囲った文字列はすべてStringクラスという ことになります。すべて ・文字列を表現 ・文字の長さを知ることができる。 ・指定した位置の文字を知りえる。 ・他の文字と等しいかを調べられる。 という共通の性質を持ちます。 簡単JAVA説明⑭ クラス解説 つまりクラスとは 「クラス(class)はオブジェクト指向プログラミングの 基本的な仕組みを提供します」 インスタンス(オブジェクトとも言います)が持つ ① フィールド(別名 性質、属性、アトリビュート、プ ロパティ) ② メソッド(別名 関数、ファンクション) を定義。 ①,②を総称してメンバといいます。 簡単JAVA説明⑭ 1.クラスの宣言 class クラス名 { 型 フィールド; : 型 メソッド() { ... } : } ●クラスは大文字で始める。 ●フィールドは変数、メソッドは関数 ●フィールド、メソッドがクラスを決定 簡単JAVA説明⑭ 2.インスタンス(オブジェクト)の作成 あるクラスのインスタンスを作成するには、new を 用います。例えば、TestClass という名前のクラスの インスタンスを作るには次のようにします。 TestClass o = new TestClass(); これは本質的に配列の例 int test = new int[3]; と同じです。 簡単JAVA説明⑭ 3.例 (テキスト P221も参照) // Testクラス class Test { int no; double score; } // Testクラスのインスタンス作成 class Sample1{ Test test; test = new Test(); } 簡単JAVA説明⑭ // Testクラスのインスタンス作成 class Sample1{ Test test; test = new Test(); } は class Sample1{ Test test = new Test(); } とも書けます。 簡単JAVA説明⑭ 4. メンバへのアクセス 3の例で作成したインスタンス Test test = new Test(); に対し、 test.no = 1; test.score = 85; と表記すると これは testのnoフィールドが1 testのscoreフィールドが85 と読めます。 簡単JAVA説明⑭ フィールドは代入のみならず、 System.out.prinln("Noは" + test.no); System.out.prinln("点数は" + test.score); と記述すれば代入した内容が表示される。 簡単JAVA説明⑭ 5.クラスの利用 クラス利用のプログラム => Sample1 Testクラス + main()メソッド 実行結果 Noは1 点数は85.0 簡単JAVA説明⑭ // Testクラスのクラス class Test{ int no; double score; } // Testクラスのインスタンス作成 class Sample1{ public static void main(String args[]){ Test test = new Test(); test.no = 1; test.score = 85; System.out.println("Noは" + test.no); System.out.println("点数は" + test.score); } } 簡単JAVA説明⑭ 注意点 Sample1.javaをコンパイルすると Sample1.class とTest.classが作成される。 ソースファイルには2つの「クラス」があるため 2つのクラスファイルが作成される。 同じファルダに入れておけば、実行は今までと同様。 java Sample1 で実行される。 簡単JAVA説明⑭ 6.2つ以上のインスタンスの作成 ●インスタンスは2つ以上作成可能です。 Test test1 = new Test(); test1.no = 1; test1.score = 10; Test test2 = new Test(); test2.no = 2; test2.score = 20; test1とtest2は別のnoとscoreを持ちます。 簡単JAVA説明⑭ 7.メソッドの定義 メソッドは関数(機能)でした。 戻り値の型 メソッド名(引数) { 文; ・・・; rreturn 式; } 簡単JAVA説明⑭ 例 class Test { int no; double score; void show() { System.out.println("Noは" + no); System.out.println("点数は" + score); } } 簡単JAVA説明⑭ 解説 Sample1の表示の部分をメソッド化 次に、Sample1の中で、これを考えることとします。 簡単JAVA説明⑭ 8.メソッドの呼び出し 構文 インスタンスを指す変数名.メソッド(引数); 例 class Sample2 { public static void main(String args[]); { Test test = new Test(); Test.show(); } } 簡単JAVA説明⑭ // TESTクラス class Test{ int no; double score; void show(){ System.out.println("Noは" + no); System.out.println("点数は" + score); } } 簡単JAVA説明⑭ // メイン class Sample2{ public static void main(String args[]){ Test test = new Test(); test.no = 1; test.score = 85; test.show(); } } 簡単JAVA説明⑭ 実行結果 Noは1 点数は85.0 簡単JAVA説明⑭ 9.フィールドおよびメソッドへのアクセス ●フィールドへのアクセス Sample2 メインの test.no = 1; test.score = 85; がフィールドへのアクセスです。 簡単JAVA説明⑭ またTESTクラスは 自身であることを強調してthisをつけて class Test{ int no; double score; void show(){ System.out.println("Noは" + this.no); System.out.println("点数は" + this. score); } } のように書くこともできます。 簡単JAVA説明⑭ ●メソッドへのアクセス Sample2 メインの test.show(); がメソッドへのアクセスです。 簡単JAVA説明⑭ ●クラスの中で、クラスのメソッドを使っている場合は 何もつけないか、this.で記述します。 class Test1{ int no; double score; void show(){ System.out.println("Noは" + this.no); } void showTest(){ this.show(); } } 簡単JAVA説明⑭ // メイン class Sample3{ public static void main(String args[]){ Test1 test = new Test1(); test.no = 1; test.score = 85; test.showTest(); } } 簡単JAVA説明⑭ 10.メソッドの引数 呼び出しもとからメソッドに情報を渡し、その値に応じた処理を おこなうこ とができます。 例 void setNo(int m){ no = m; System.out.println("Noは" + no); } mには呼び出しもとから渡された値が入っています。 簡単JAVA説明⑭ 点数に関しても、以下のメソッドを考えます。 void setScore(double s){ score= s; System.out.println(“点数は" + score); } ここではdouble型の引数が渡されてきます。 ●注意! 当然のことですが、渡す引数の値が変われば、結果も変わりま す。 簡単JAVA説明⑭ // TESTクラス class Test{ int no; double score; void setNo(int m){ no = m; System.out.println("Noは" + no); } void setScore(double s){ score= s; System.out.println(“点数は" + score); } void show(){ System.out.println("Noは" + no); System.out.println("点数は" + score); } } 簡単JAVA説明⑭ // メイン class Sample4{ public static void main(String args[]){ Test test = new Test(); test.setNo(2) ; test.setScore(45.5); test.show(); } } 実行結果 Noは2 点数は45.5 Noは2 点数は45.5 簡単JAVA説明⑭ 11.メソッドの戻り値 引数により呼び出しもとから値を引継ぎました が、値を戻せないか?という疑問が湧くかと思 います。 メソッドの呼び出しもとに特定の情報を返すこと ができます。その情報を「戻り値」と言います。 構文 戻り値の型 メソッド(引数) <=戻り値の型にする! { 文; return 式; } 簡単JAVA説明⑭ 例 int getNo() { System.out.println(“Noを指定します"); return no; } double getScore() { System.out.println("点数を指定します"); return score; } 簡単JAVA説明⑭ // TESTクラス class Test{ int no; double score; int getNo() { System.out.println(“No確認"); return no; } double getScore() { System.out.println(“点数を確認"); return score; } 簡単JAVA説明⑭ void setNo(int m){ no = m; System.out.println("Noは" + no); } void setScore(double s){ score= s; System.out.println(“点数は" + score); } void show(){ System.out.println("Noは" + no); System.out.println("点数は" + score); } } 簡単JAVA説明⑭ class Sample5{ public static void main(String args[]){ Test test = new Test(); test.setNo(2) ; test.setScore(45.5); int num = test.getNo(); double ten = test.getScore (); System.out.println(" numは" + num); System.out.println(“tenは" + ten); } } 簡単JAVA説明⑭ 実行結果 Noは2 点数は45.5 No確認 点数を確認 numは2 tenは45.5 簡単JAVA説明⑭ 質問 void() の戻り値は何? 答え void()は戻り値のないメソッドです。 逆に言えば、戻り値のないメソッドを作成したい 場合はvoid()を使います。 テキストP254参照 簡単JAVA説明⑭ 12.コンストラクタの定義 構文 修飾子 クラス名(引数リスト) { 文; ・・・; } 簡単JAVA説明⑭ 例 public Test() { no = 0; score = 0.0; System.out.println(“TEST雛型”); } 簡単JAVA説明⑭ コンストラクタとは? 一言で言うと、「初期化」です。 正確に言うとインスタンス(オブジェクト)の 「初期化」をする仕組みです。 ●特徴 1.コンストラクタには戻り値の型がない。 2.コンストラクタの名前はクラス名と同じ。 簡単JAVA説明⑭ 13.コンストラクタの呼び出し メインの中で、 Test test = new Test(); のように記述します。これでコンストラクタが呼び出さ れます。 -簡単JAVA説明⑭ class Test{ int no; double score; public Test() { no=0; score = 0.0; System.out.println(" TEST雛型"); } void show(){ System.out.println("Noは" + this.no); System.out.println("点数は" + this. score); } } 簡単JAVA説明⑭ // メイン class Sample4{ public static void main(String args[]){ Test test = new Test(); test.show(); } }
© Copyright 2025 ExpyDoc