見出し画像

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のオブジェクト指向の基本を押さえると、もっと複雑なシステムも作りやすくなります。まずは今回の内容を参考にして、実際にコードを書きながら理解を深めてみてください!

いいなと思ったら応援しよう!