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.
OOP adalah berdasarkan empat tiang utama:
Mari kita lihat dengan lebih dekat setiap tiang ini dengan contoh dalam JavaScript.
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.
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
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.
Warisan membenarkan kelas (subkelas) mewarisi sifat dan kaedah daripada kelas lain (superclass). Ini memudahkan penggunaan semula kod dan membuat hierarki kelas.
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.
Di sini, kedua-dua Anjing dan Kucing mewarisi daripada Haiwan. Setiap satu melaksanakan bunyinya sendiri, menunjukkan cara pewarisan membenarkan gelagat tersuai tanpa menduplikasi kod.
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.
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
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!
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.
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.
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.
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!