Rumah > hujung hadapan web > tutorial js > Pengaturcaraan Berorientasikan Objek (OOP): Fahami ilar dengan Contoh yang Jelas

Pengaturcaraan Berorientasikan Objek (OOP): Fahami ilar dengan Contoh yang Jelas

Barbara Streisand
Lepaskan: 2024-10-28 16:16:02
asal
372 orang telah melayarinya

Object-Oriented Programming (OOP): Understand the illars with Clear Examples

Hai dev! Hari ini kita akan bercakap tentang Pengaturcaraan Berorientasikan Objek (OOP). Paradigma ini penting untuk mengatur data dan tingkah laku menggunakan "objek". Jika anda sedang bersedia untuk temu duga kerja, menguasai konsep ini boleh membuat semua perbezaan.

Kami akan meneroka empat tunjang OOP dengan cara yang jelas dan praktikal, dengan contoh yang akan membantu anda memahami segala-galanya dengan mudah.

Apakah Pengaturcaraan Berorientasikan Objek?

OOP adalah berdasarkan empat tiang utama:

  1. Encapsulation
  2. Warisan
  3. Polimorfisme
  4. Abstraksi

Mari kita lihat dengan lebih dekat setiap tiang ini dengan contoh dalam JavaScript.

1. Enkapsulasi

Encapsulation adalah seperti menyimpan barang anda di dalam kotak. Anda meletakkan semua yang anda perlukan di dalam dan mengawal siapa yang boleh mengaksesnya. Ini membantu melindungi data yang disimpan dan memastikan keadaan dalaman objek kekal selamat.

Contoh:

class User {
    constructor(name, age) {
        this.name = name;
        this.age = age;
    }

    // Public method
    displayInfo() {
        return `${this.name}, ${this.age} years old`;
    }

    // Private method
    _checkAge() {
        return this.age >= 18 ? 'an adult' : 'a minor';
    }

    displayStatus() {
        return `${this.name} is ${this._checkAge()}.`;
    }
}

const user = new User('Alice', 22);
console.log(user.displayInfo()); // Alice, 22 years old
console.log(user.displayStatus()); // Alice is an adult
Salin selepas log masuk

Dalam contoh ini, _checkAge ialah kaedah yang tidak boleh diakses secara langsung. Ia digunakan secara dalaman untuk membantu menentukan status pengguna sambil memastikan logiknya teratur.

2. Warisan

Warisan membenarkan kelas (subkelas) mewarisi sifat dan kaedah daripada kelas lain (superclass). Ini memudahkan penggunaan semula kod dan membuat hierarki kelas.

Contoh:

class Animal {
    constructor(name) {
        this.name = name;
    }

    makeSound() {
        return `${this.name} makes a sound.`;
    }
}

class Dog extends Animal {
    makeSound() {
        return `${this.name} barks.`;
    }
}

class Cat extends Animal {
    makeSound() {
        return `${this.name} meows.`;
    }
}

const myDog = new Dog('Rex');
const myCat = new Cat('Mia');

console.log(myDog.makeSound()); // Rex barks.
console.log(myCat.makeSound()); // Mia meows.
Salin selepas log masuk

Di sini, kedua-dua Anjing dan Kucing mewarisi daripada Haiwan. Setiap satu melaksanakan bunyinya sendiri, menunjukkan cara pewarisan membenarkan gelagat tersuai tanpa menduplikasi kod.

3. Polimorfisme

Polymorphism ialah keupayaan objek yang berbeza untuk bertindak balas kepada kaedah yang sama dengan cara yang berbeza. Ini membolehkan kaedah dengan nama yang sama mempunyai gelagat berbeza bergantung pada jenis objek.

Contoh:

class Shape {
    area() {
        return 0;
    }
}

class Rectangle extends Shape {
    constructor(width, height) {
        super();
        this.width = width;
        this.height = height;
    }

    area() {
        return this.width * this.height;
    }
}

class Circle extends Shape {
    constructor(radius) {
        super();
        this.radius = radius;
    }

    area() {
        return Math.PI * Math.pow(this.radius, 2);
    }
}

const shapes = [new Rectangle(10, 5), new Circle(3)];

shapes.forEach(shape => {
    console.log(`Area: ${shape.area()}`);
});

// Output:
// Area: 50
// Area: 28.274333882308138
Salin selepas log masuk

Dalam kes ini, Rectangle dan Circle mempunyai kaedah kawasan mereka sendiri, tetapi memanggil kaedah yang sama menghasilkan hasil yang berbeza berdasarkan jenis bentuk. Ini adalah polimorfisme dalam tindakan!

4. Abstraksi

Abstraksi ialah proses menyembunyikan butiran kompleks dan mendedahkan hanya perkara yang perlu. Dalam OOP, ini membolehkan anda menggunakan objek tanpa perlu memahami semua selok-belok cara ia berfungsi.

Contoh:

class Car {
    constructor(brand, model) {
        this.brand = brand;
        this.model = model;
    }

    start() {
        console.log('Car started.');
    }

    stop() {
        console.log('Car stopped.');
    }
}

class ElectricCar extends Car {
    charge() {
        console.log('Electric car charging.');
    }
}

const myElectricCar = new ElectricCar('Tesla', 'Model 3');
myElectricCar.start(); // Car started.
myElectricCar.charge(); // Electric car charging.
Salin selepas log masuk

Di sini, kelas Kereta menyediakan kaedah asas, manakala ElectricCar menambah fungsi pengecasan. Anda boleh menggunakan kereta tanpa mengetahui cara setiap bahagian berfungsi — anda hanya perlu tahu cara memulakan dan mengecasnya.

Kesimpulan

Dan begitulah! Anda kini mempunyai pemahaman yang lebih jelas tentang empat tiang Pengaturcaraan Berorientasikan Objek: enkapsulasi, pewarisan, polimorfisme dan abstraksi. Konsep ini penting untuk menulis kod yang lebih teratur dan boleh diselenggara.

Teruskan berlatih dan menggunakan prinsip ini dalam projek anda, dan anda akan bersedia untuk menangani cabaran dalam temu duga dan dalam seharian anda sebagai pembangun!

Atas ialah kandungan terperinci Pengaturcaraan Berorientasikan Objek (OOP): Fahami ilar dengan Contoh yang Jelas. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan