Rumah > Java > javaTutorial > teks badan

Memahami Pengaturcaraan Berorientasikan Objek (OOP)

王林
Lepaskan: 2024-08-25 20:31:32
asal
928 orang telah melayarinya

Understanding Object-Oriented Programming (OOP)

Pengaturcaraan Berorientasikan Objek (OOP) ialah konsep asas dalam Java, menjadikannya lebih mudah untuk mencipta kod modular, boleh digunakan semula dan berskala. Dalam siaran ini, kami akan meneroka prinsip teras OOP, seperti kelas, objek, pewarisan, enkapsulasi, polimorfisme dan pengabstrakan.

1. Pengenalan kepada Pengaturcaraan Berorientasikan Objek

OOP ialah paradigma pengaturcaraan berdasarkan konsep "objek", yang boleh mengandungi data dan kaedah untuk memanipulasi data tersebut. Dengan menyusun kod ke dalam objek, anda boleh mencipta atur cara yang lebih mudah diurus dan lebih mudah difahami.

Empat prinsip utama OOP ialah:

  • Encapsulation
  • Warisan
  • Polimorfisme
  • Abstraksi

Mari kita terokai setiap konsep ini dalam konteks Java.

2. Kelas dan Objek

2.1 Apakah itu Kelas?

Kelas dalam Java ialah pelan tindakan untuk mencipta objek. Ia mentakrifkan sifat (medan) dan tingkah laku (kaedah) yang akan dimiliki oleh objek yang dicipta daripada kelas. Fikirkan kelas sebagai templat yang menggariskan struktur dan kefungsian objek.

Contoh Kelas:

public class Car {
    // Fields (attributes)
    String mark;
    String model;
    int year;

    // Method (behavior)
    void startEngine() {
        System.out.println("Engine started.");
    }
}
Salin selepas log masuk

Dalam contoh ini, kelas Kereta mempunyai tiga medan: tanda, model dan tahun, serta satu kaedah startEngine().

2.2 Apakah itu Objek?

Objek ialah contoh kelas. Setelah kelas ditakrifkan, anda boleh mencipta berbilang objek daripadanya, setiap satu dengan nilai uniknya sendiri untuk medan tersebut.

Contoh Mencipta Objek:

public class Main {
    public static void main(String[] args) {
        // Creating an object of the Car class
        Car myCar = new Car();

        // Setting field values
        myCar.mark = "Toyota";
        myCar.model = "Corolla";
        myCar.year = 2021;

        // Calling a method
        myCar.startEngine();  // Outputs: Engine started.
    }
}
Salin selepas log masuk

Dalam contoh ini, myCar ialah objek kelas Kereta, dengan nilai khusus ditetapkan pada medannya.

Cabaran 1:
Buat kelas bernama Buku dengan medan untuk tajuk, pengarang dan halaman. Buat objek kelas Buku, tetapkan medannya dan cetak butiran buku.

3. Enkapsulasi

Encapsulation ialah amalan menghimpun data (medan) dan kaedah yang beroperasi pada data ke dalam satu unit, atau kelas, dan mengehadkan akses kepada beberapa komponen objek. Ini dicapai menggunakan pengubah suai akses (peribadi, awam, dilindungi).

Encapsulation membantu dalam melindungi keadaan dalaman objek daripada gangguan dan penyalahgunaan yang tidak disengajakan.

Contoh Enkapsulasi:

public class Person {
    // Private fields
    private String name;
    private int age;

    // Public methods to access private fields
    public String getName() {
        return name;
    }

    public void setName(String newName) {
        name = newName;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int newAge) {
        if (newAge > 0) {
            age = newAge;
        }
    }
}
Salin selepas log masuk

Dalam contoh ini, kelas Person merangkum medannya dengan menjadikannya peribadi dan menyediakan kaedah awam (getName, setName, getAge, setAge) untuk mengakses dan mengubah suai medan tersebut.

Cabaran 2:
Tambahkan enkapsulasi pada kelas Buku dengan menjadikan medan peribadi dan mencipta kaedah pengambil dan penetap awam untuk setiap medan.

4. Warisan

Warisan ialah mekanisme yang membolehkan satu kelas mewarisi sifat dan kaedah kelas lain. Kelas yang mewarisi dipanggil "subkelas" atau "kelas kanak-kanak", dan kelas yang diwarisi dipanggil "kelas super" atau "kelas induk."

Warisan menggalakkan kebolehgunaan semula kod dan mewujudkan hierarki semula jadi antara kelas.

Contoh Warisan:

// Superclass
public class Animal {
    void eat() {
        System.out.println("This animal is eating.");
    }
}

// Subclass
public class Dog extends Animal {
    void bark() {
        System.out.println("The dog is barking.");
    }
}

public class Main {
    public static void main(String[] args) {
        Dog myDog = new Dog();
        myDog.eat();  // Inherited method from Animal class
        myDog.bark(); // Method from Dog class
    }
}
Salin selepas log masuk

Dalam contoh ini, kelas Anjing mewarisi kaedah makan daripada kelas Haiwan dan juga mempunyai kulit kaedahnya sendiri.

Cabaran 3:
Buat EBook subkelas yang diwarisi daripada kelas Buku. Tambahkan saiz fail medan baharu dan muat turun kaedah() pada kelas EBook.

5. Polimorfisme

Polymorphism membenarkan objek daripada kelas berbeza untuk dianggap sebagai objek kelas super biasa. Ia boleh dicapai melalui kaedah mengatasi dan antara muka.

5.1 Mengatasi Kaedah

Penggantian kaedah membenarkan subkelas menyediakan pelaksanaan khusus bagi kaedah yang telah ditakrifkan dalam kelas supernya.

Contoh Polimorfisme:

public class Animal {
    void sound() {
        System.out.println("This animal makes a sound.");
    }
}

public class Cat extends Animal {
    @Override
    void sound() {
        System.out.println("The cat meows.");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal myAnimal = new Cat(); // Polymorphism
        myAnimal.sound();  // Outputs: The cat meows.
    }
}
Salin selepas log masuk

Dalam contoh ini, walaupun myAnimal ialah jenis Haiwan, ia merujuk kepada objek jenis Kucing dan kaedah bunyi ganti Kucing dipanggil.

Cabaran 4:
Gantikan kaedah toString dalam kelas Buku untuk mengembalikan perwakilan rentetan butiran buku.

6. Abstraksi

Abstraksi melibatkan menyembunyikan butiran pelaksanaan sistem yang kompleks dan mendedahkan bahagian yang diperlukan sahaja. Ia boleh dicapai menggunakan kelas abstrak dan antara muka.

6.1 Kelas Abstrak

Kelas abstrak tidak boleh digunakan dan mungkin mengandungi kaedah abstrak (kaedah tanpa badan) yang mesti dilaksanakan oleh subkelas.

Contoh Abstraksi:

abstract class Shape {
    abstract void draw();  // Abstract method
}

public class Circle extends Shape {
    @Override
    void draw() {
        System.out.println("Drawing a circle.");
    }
}

public class Main {
    public static void main(String[] args) {
        Shape myShape = new Circle();
        myShape.draw();  // Outputs: Drawing a circle.
    }
}
Salin selepas log masuk

Dalam contoh ini, Shape ialah kelas abstrak dengan cabutan kaedah abstrak, yang dilaksanakan oleh kelas Bulatan.

Cabaran 5:
Cipta Peranti kelas abstrak dengan kaedah abstrak powerOn. Cipta Telefon Pintar subkelas yang melaksanakan kaedah powerOn.

7. Ringkasan

Dalam siaran ini, kami meneroka konsep utama Pengaturcaraan Berorientasikan Objek dalam Java: kelas, objek, warisan, enkapsulasi, polimorfisme dan abstraksi. Memahami prinsip ini adalah penting untuk membina aplikasi Java yang kompleks dan cekap.

Jangan ragu untuk mencuba contoh dan cabaran yang disediakan. Jika anda mempunyai sebarang soalan atau memerlukan penjelasan lanjut, tinggalkan komen di bawah!

Atas ialah kandungan terperinci Memahami Pengaturcaraan Berorientasikan Objek (OOP). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan