Java中級講座:オブジェクト指向の基礎
Javaでプログラミングをしていると、「オブジェクト指向」という考え方を学ぶことになります。オブジェクト指向を理解すると、コードがもっと簡単に管理でき、使いやすくなります。今回は、その基本をわかりやすく解説します。
1. オブジェクト指向とは?
オブジェクト指向(Object-Oriented Programming, OOP)とは、ものごとを「オブジェクト」として扱う考え方です。たとえば、「犬」をオブジェクトとしてプログラムで表すと、犬の「種類」や「年齢」などの情報や「吠える」という動きもプログラムで表現できます。
Javaのオブジェクト指向の基本的なポイントは以下の4つです。
クラスとオブジェクト
カプセル化
継承
ポリモーフィズム
2. クラスとオブジェクト
クラスとは?
クラスはオブジェクトの設計図のようなもので、「どんなデータや動きがあるか」を定義します。例えば「犬」というクラスを作ると、そこから「柴犬」「ゴールデンレトリバー」などの具体的な犬を作り出すことができます。
public class Dog {
String breed; // 種類
int age; // 年齢
public void bark() {
System.out.println("ワンワン!");
}
}
オブジェクトとは?
オブジェクトは、クラスから作り出した具体的な「もの」です。たとえば、上記の「Dog」クラスから、具体的な犬を作ることができます。
public class Main {
public static void main(String[] args) {
Dog dog1 = new Dog();
dog1.breed = "柴犬";
dog1.age = 3;
dog1.bark(); // ワンワン!と出力
}
}
この例では、dog1が「Dog」クラスから作られた「オブジェクト」です。
3. カプセル化
カプセル化は、オブジェクトのデータを外から直接触れないようにし、決められた方法でだけ操作できるようにする仕組みです。データをprivateとして外から見えないようにし、代わりにgetやsetメソッドで操作を行います。
public class Dog {
private String breed;
private int age;
public String getBreed() {
return breed;
}
public void setBreed(String breed) {
this.breed = breed;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
こうすることで、データが安全に保たれます。
4. 継承
継承は、あるクラスの特徴を引き継いで、新しいクラスを作る仕組みです。例えば、すべての動物は「食べる」という特徴を持っていますが、犬はそれに加えて「吠える」という特徴も持っています。このような関係を継承で表します。
public class Animal {
public void eat() {
System.out.println("食べる");
}
}
public class Dog extends Animal {
public void bark() {
System.out.println("ワンワン!");
}
}
public class Main {
public static void main(String[] args) {
Dog dog = new Dog();
dog.eat(); // 親クラスの動作を使う
dog.bark(); // 自分の動作を使う
}
}
このように、犬は動物の特徴を受け継ぎつつ、自分だけの特徴も持っています。
5. ポリモーフィズム(多態性)
ポリモーフィズムは、「同じ動き(メソッド)でも、それぞれ違う結果が出る」仕組みです。たとえば、「鳴く」という動作は動物によって違う鳴き方になります。
public class Animal {
public void makeSound() {
System.out.println("動物の鳴き声");
}
}
public class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("ワンワン!");
}
}
public class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("ニャーニャー");
}
}
public class Main {
public static void main(String[] args) {
Animal animal1 = new Dog();
Animal animal2 = new Cat();
animal1.makeSound(); // ワンワン!
animal2.makeSound(); // ニャーニャー
}
}
このように、「makeSound」メソッドを使っても、犬と猫で鳴き方が違います。これがポリモーフィズムです。
まとめ
Javaのオブジェクト指向の基本を押さえると、もっと複雑なシステムも作りやすくなります。まずは今回の内容を参考にして、実際にコードを書きながら理解を深めてみてください!