Javaの開発をしたことがないので、やったことをまとめていこうと思います。
基本的なことをやっていくので初心者でも出来るレベルだと思います。
インターフェース
[IntfComp.java]
1 2 3 4 5 6 7 8 9 10 |
// パッケージの宣言 package chapter_4_11; /** * インターフェース */ public interface IntfComp { // 抽象メソッド public int add(int su1, int su2); } |
[Keisan1.java]
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 chapter_4_11; /** * Keisan1クラス(インターフェースの実装) */ public class Keisan1 implements IntfComp { // オーバーライド public int add(int su1, int su2) { int i,tmp,sum; // su1が小さくなるように入れ替え if(su1 > su2) { tmp = su1; su1 = su2; su2 = tmp; } // ループで合計を求める sum = 0; for(i = su1; i <= su2; i++) { sum = sum + i; } // 戻り値 return sum; } } |
[Keisan2.java]
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 |
// パッケージの宣言 package chapter_4_11; /** * Keisan2クラス(インターフェースの実装) */ public class Keisan2 implements IntfComp { // オーバーライド public int add(int su1, int su2) { int tmp,cnt,sum1,sum2; // su1が小さくなるように入れ替え if(su1 > su2) { tmp = su1; su1 = su2; su2 = tmp; } // ガウスの方法で合計を求める cnt = su2 - su1 + 1; sum1 = su1+su2; sum2 = sum1 * cnt / 2; return sum2; } } |
[Rensyu411_01.java]
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 28 29 |
// パッケージの宣言 package chapter_4_11; /** * Rensyu411_01クラス */ public class Rensyu411_01 { // mainメソッド(最初に実行される特別なメソッド) public static void main(String[] args) { // 変数の宣言 int sum; int i = 1, j = 10; // インスタンスの生成 Keisan1 kei1 = new Keisan1(); Keisan2 kei2 = new Keisan2(); System.out.println(i + "から" + j + "の和"); System.out.print("計算1:"); // メソッドの呼び出し sum = kei1.add(i,j); System.out.println(sum); System.out.print("計算2:"); // メソッドの呼び出し sum = kei2.add(i, j); System.out.println(sum); } } |
[表示結果]
1 2 3 |
1から10の和 計算1:55 計算2:55 |
[Cake.java]
1 2 3 4 5 6 7 8 9 10 11 12 |
// パッケージの宣言 package chapter_4_11; /** * Cakeクラス(スーパークラス) */ public class Cake { // hontaiメソッド public void hontai() { System.out.println("本体のスポンジケーキです。"); } } |
[Decorate.java]
1 2 3 4 5 6 7 8 9 10 |
// パッケージの宣言 package chapter_4_11; /** * インターフェース */ public interface Decorate { // 抽象メソッド public void kazaru(); } |
[StrawberryCake.java]
1 2 3 4 5 6 7 8 9 10 11 12 |
// パッケージの宣言 package chapter_4_11; /** * StrawberryCakeクラス(サブクラス、インターフェースの実装) */ public class StrawberryCake extends Cake implements Decorate { // オーバーライド public void kazaru() { System.out.println("イチゴで飾りました。"); } } |
[ChocolateCake.java]
1 2 3 4 5 6 7 8 9 10 11 12 |
// パッケージの宣言 package chapter_4_11; /** * ChocolateCakeクラス(サブクラス、インターフェース実装) */ public class ChocolateCake extends Cake implements Decorate { // オーバーライド public void kazaru() { System.out.println("チョコレートで飾りました。"); } } |
[Rensyu411_02.java]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
// パッケージの宣言 package chapter_4_11; /** * Rensyu411_02クラス */ public class Rensyu411_02 { // mainメソッド(最初に実行される特別なメソッド) public static void main(String[] args) { // フィールドの定義 ChocolateCake cake1; StrawberryCake cake2; // インスタンスの生成 cake1 = new ChocolateCake(); cake2 = new StrawberryCake(); // メソッドの呼び出し cake1.hontai(); cake1.kazaru(); cake2.hontai(); cake2.kazaru(); } } |
[表示結果]
1 2 3 4 |
本体のスポンジケーキです。 チョコレートで飾りました。 本体のスポンジケーキです。 イチゴで飾りました。 |
★ポイント
- インターフェースは処理の実体を持たないメソッドの集まりであり、オーバーライドを前提とした仕様の定義である。
- インターフェースで宣言されるメソッドは、実装するクラス側で必ずオーバーライドしなければならない。
javaでポイントになるものをまとめてみた newを使用したインスタンスの生成
javaでポイントになるものをまとめてみた 引数/戻り値を使用する
javaでポイントになるものをまとめてみた インスタンス変数とクラス変数
javaでポイントになるものをまとめてみた インターフェース
javaでポイントになるものをまとめてみた ポリモルフィズム
javaでポイントになるものをまとめてみた コレクションクラス