Carクラス処理

●コンストラクタの宣言

コンストラクタとは、オブジェクト生成の際に自動で実行される、初期化処理などを行うメソッドである。
コンストラクタ名は属するクラス名と同じになる。

class クラス名 {
  型名 フィールド名;
  ・・・
  アクセスレベル コンストラクタ名 (引数リスト){
    文;
  }
  ・・・
}

●クラスの拡張

Javaでは、すでに作成したクラスをもとに、新しいクラスを作成することができる。
このように新しいクラスを作成することをクラスを拡張する(extends)という。
新しいクラスは既存のクラスに新しく必要となる性質や機能を付けたしていくことができる。

●クラスの継承

クラスの継承とは、あるクラス(スーパークラス)の機能を他のクラス(サブクラス)からでも使用できるということである。
新たなクラスを作成するとき、最初からクラスを作成するのではなく元々あるクラスの継承を使用する。
継承される側のクラスをスーパークラス、継承する側のクラスをサブクラスという。
1つのサブクラスが継承できるスーパークラスは1つまでである。

class サブクラス名 extends スーパークラス名 { クラス本体 }

class ExClass {
  String class2String;
  //スーパークラスのコンストラクタ
  ExClass(String s) {
    classString = s;
  }
  //継承されるclassMethod
  void class2ethod() {
    System.out.println(classString);
  }
}

public class subExClass extends ExClass {   //ExClass2をスーパークラスに持つサブクラスsubExClass2を宣言
  subExClass(String s) {  //オブジェクト生成時にコンストラクタが実行される
  super(s);
  }
  public static void main(String[] args) {
    subExClass subObject = new subExClass(args[0]);  //サブクラスsubExClass2のオブジェクトsubObjectを宣言・生成する
    subObject.classMethod();  //メソッドclass2Methodを呼び出す
  }
}
  

●サンプル

class Number {  //個数を追加していくNumberクラスの作成
  private int num;
  private String name;
  public Number(String name){  //名前を設定・個数を初期化するコンストラクタ
   this.name = name;
   this.num = 0;
  }
  public void count(int n){  //個数をn個追加
    num += n;
  }
  public String getName(){  //名前を返却
    return name;
  }
  public int getNumber(){  //個数を返却
    return num;
  }
}

class sample{
  public static void main(String args[]){
    Number apple = new Number("りんご");  //appleというオブジェクトを作成
    Number grape = new Number("ぶどう");  //grapeというオブジェクトを作成
    apple.count(2);  //appleの個数を2増やす
    grape.count(4);
    apple.count(10);
    System.out.println(apple.getName()+":"+apple.getNumber()+"個");
    ↑↑appleの名前と個数を表示
    System.out.println(grape.getName()+":"+grape.getNumber()+"個");
    ↑↑grapeの名前と個数を表示
  }
}
  

●実行結果

 りんご:12個
 ぶどう:4個