Javaでクラスとインスタンス
2020/08/14
オブジェクト指向を絶賛学習中のmiyupacaです。
オブジェクト指向の考え方は引き続き理解を深めることにして、実際にプログラムとして記述していく時に欠かせないクラスとインスタンスの基本をまとめてみます。
クラスとは
クラスはいわゆる金型。設計図と表現されたりもする。
クラスを元にプログラムの世界にオブジェクト(インスタンス)を生み出す。
クラスを作っておくことで、同じ形のものを大量生産することができたり、特徴や機能を一元管理することができる。
Humanというクラスを作成してみる。
public class Human {
...
}
ちなみにpublicとついているのは外からアクセスができる状態を表している。例えばprivateと書くと他のクラスからアクセスが不可能になる。
クラスの中身にはクラスから生み出されるオブジェクトの
特徴や機能になるものを記述する。
public class Human {
// フィールド
String name;
int age;
// メソッド
public void greeting() {
System.out.println("こんにちは!私は" + this.name + "です。")
}
}
特徴を表すのがフィールド、機能を表すのがメソッド。
クラス内のフィールドにアクセスする時は明示的にthisをつける。thisは「自分のインスタンス」を指している。this.nameは自分のインスタンスの名前。
インスタンスとは
クラスを定義するとクラス型の変数を宣言できるようになる。クラスを使って実際に作成されるものがインスタンス。
インスタンスを作るためのクラスが必要。プログラムの世界にモノを生み出す力を持つので神様のイメージ。神様クラス。
Mainクラスを神様クラスとして、Javaで最初に実行されるmainメソッドから、先ほどのHumanクラスを呼び出してインスタンスを作ってみる。
public class Main {
public static void main(String[] args) {
// インスタンスを生成
Human h = new Human();
// フィールドに値を入れる
h.name = "taro";
h.age = 25;
// メソッドを読み出す
h.greeting();
}
}
上記のようにnew演算子を使うことでインスタンスを生成でき、生成した後には変数.フィールド名
や変数.メソッド名()
でフィールドやメソッドにアクセスすることができる。
クラスの様々な機能もまた自分なりにまとめられたらと思います(*・ω・)ノ