LoginSignup
0
1

【Java】クラス・メソッドの個人的まとめ(基礎)

Last updated at Posted at 2019-11-26

【Java】クラス・メソッドの個人的まとめ(基礎)

個人的にJavaの勉強で大事だなと思ったことをまとめました。
今回は、クラス・インスタンス・メソッドについてです。

① クラスについて

  • モノや事柄であるオブジェクトの1つであり、まだ実体化されていないもの(モノの設計図)。
  • Javaのコードには、最低1つ以上のクラスが必要。
  • クラスを1つの「モノ」として考えると、クラスの中身(メンバ)には大きく分けて以下の2つある。
    • モノの状態や性質を扱う「フィールド」
    • モノの機能を扱う「メソッド」
  • クラスは、基本的に以下の「sample.java」ように記述する。
sample.java
// クラスの宣言
class Animal
{
  // クラスのモノの状態・性質を扱う「フィールド」を記述
  // 「型名 フィールド名;」のように記述
  String name;
  int num;
  // クラスの機能を扱う「メソッド」を記述
  // 「戻りの型 メソッド名(引数リスト){文;}」のように記述
  void show() {
    System.out.println("動物の名前は" + name + "です。");
    System.out.println("登録番号は" + num + "です。");
  }
}

② インスタンスについて

  • モノや事柄であるオブジェクトの1つであり、実体化されたもの(設計図から作られた実物)。
  • 宣言したクラスを利用するために、インスタンスの作成が必要。
  • インスタンスを作成するために、以下の手順を踏む。
    1. インスタンス変数を宣言する。
    2. インスタンスを作成し、その変数で扱えるようにする。
  • インスタンス作成すると、クラスのメンバにアクセスできるようになる。
sample.java
// クラスの宣言
class Animal
{
  String name;
  int num;

  void show() {
    System.out.println("動物の名前は" + name + "です。");
    System.out.println("登録番号は" + num + "です。");
  }
}
class Sample
{
  public static void main(String[] args)
  {
  // インスタンス変数を宣言。
  Animal animal1;
  // インスタンスを作成。
  // インスタンス作成で「実際に扱えるモノ」となる。
  animal1 = new Animal();
  // インスタンスの宣言と作成を以下のように同時に行える。
  // Animal animal1 = new Animal();
  
  // インスタンス名.フィールド名でフィールドにアクセスできる。
  animal1.name = "犬";
  animal1.num = "1";
  // インスタンス名.メソッド名でメソッドにアクセスできる。
  animal1.show();
  }
}

console
動物の名前は犬です。
登録番号は1です。

③ メソッドについて

  • メソッドは、モノの機能を扱う(処理をする)部分である。
  • クラス外からメソッドを呼ぶときは、「インスタンス名.メソッド名」とする。
  • クラス内でメソッドを呼ぶときは、「メソッド名」または「this.メソッド名」とする。
sample.java
// クラスの宣言
class Animal {
  String name;
  int num;

  void show() {
    System.out.println("動物の名前は" + name + "です。");
    System.out.println("登録番号は" + num + "です。");
  }
  void showAnimal() {
    System.out.println("動物を紹介していきます。");
    // 自分自身のメソッドを呼び出している(クラス内から呼び出している)。
    // show()としても良い。
    this.show();
  }
}
class Sample {
  public static void main(String[] args) {
    Animal animal1;
    animal1 = new Animal();
  
    animal1.name = "犬";
    animal1.num = "1";
    // animal1の情報でメソッドを呼び出している(クラス外から呼び出している)。
    animal1.showAnimal();
  }
}

console
動物を紹介していきます。
動物の名前は犬です。
登録番号は1です。

④ メソッドの引数と戻り値

  • メソッドには、引数(値)を渡すことができる。

  • 引数には、以下の2種類がある。

    (1) メソッドの定義内で値を受け取る変数 => 仮引数
    (2) メソッドを呼び出すときに渡す値   => 実引数

  • メソッドの呼び出し元に、メソッド本体から戻り値(情報)を渡すことができる。

  • 戻り値のないメソッドでは、void型を利用する。

  • 戻り値には、利用法が以下の2種類がある。

    (1) 呼び出し元で、戻り値利用する場合

    戻りの型 変数名 = オブジェクト名.メソッド名(引数リスト);

    (2) 呼び出し元で、戻り値利用しない場合

    オブジェクト名.メソッド名(引数リスト);

sample.java
// クラスの宣言
class Animal {
  String name;
  int num;

  // String型およびint型の仮引数を用意。
  // 戻り値のないメソッド。
  void show(String str, int n) {
    // 引数の値をメソッド内で利用できるようにしておく。
    name = str;
    num = n;
    System.out.println("動物の名前は" + str + "です。");
    System.out.println("登録番号は" + n + "です。");
  }
  // 戻り値がString型のメソッド。
  String getAnimal() {
    System.out.println("動物を紹介していきます。");
    // 呼び出し元に、戻り値を渡す。
    return name;
  }
}
class Sample {
  public static void main(String[] args) {
    Animal animal1 = new Animal();
    String name = "トラ";
    // animal1の情報でメソッドに実引数を渡す(変数も利用可能)。
    // 呼び出し元で、戻り値を利用しないパターン。
    animal1.show(name, 2);
    // 呼び出し元で、戻り値を利用するパターン。
    int number = animal1.getAnimal();
    // 戻り値を利用する。
    System.out.println(name + "の登録番号は、" + number + "です。");
  }
}

console
動物の名前はトラです。
登録番号は2です。
動物を紹介していきます。
トラの登録番号は、2です。

⑤ メンバへのアクセス制限

  • メンバには、アクセス制限を設けることができる。
    • 「private」メンバには、クラス外からアクセスできない。
    • 「public」メンバには、クラス外からアクセスできる。

⑥ カプセル化

  • クラスの中に、データ(フィールド)と機能(メソッド)をひとまとめにし、保護したいメンバには「private」を付けることで、アクセス制限を設ける機能のこと。
sample.java
class クラス名 {
  // クラス外からアクセス不可能。
  private 型名 フィールド名;
  // クラス外からアクセス可能。
  public void メソッド名 {
    ;
  }
}

⑦ メソッドのオーバーロード

  • 同じクラス内に、同じメソッド名で、異なる引数の型・個数を持つメソッドを定義すること。
  • 戻り値の型の違いのみでオーバーロードしてしまうと、プログラムがどちらにアクセスすればよいか分からな くなってしまう。そのため、オーバーロードする際は、必ず「異なる引数の型・個数を持つ」ようにする。
sample.java
class Animal {
  String name;
  int num;

  // 引数が1つのメソッド。
  void show(String str) {
    name = str;
    System.out.println("動物の名前は" + str + "です。");
  }
  // 引数が2つのメソッド。
  void show(String str, int n) {
    name = str;
    num = n;
    System.out.println("動物の名前は" + str + "です。");
    System.out.println("登録番号は" + n + "です。");
  }
}
class Sample {
  public static void main(String[] args) {
    Animal animal1 = new Animal();
    String name = "トラ";
    int num = 2;
    // 引数が1つのメソッドを呼び出す。
    animal1.show(name);
    // 引数が2つのメソッドを呼び出す。
    animal1.show(name, num);
  }
}

console
動物の名前はトラです。
動物の名前はトラです。
登録番号は2です。

以上。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1