Rumah pembangunan bahagian belakang tutorial php Nota kajian PHP: Asas pengaturcaraan berorientasikan objek

Nota kajian PHP: Asas pengaturcaraan berorientasikan objek

Oct 09, 2023 pm 12:46 PM
php Pangkalan Pengaturcaraan berorientasikan objek (oop)

Nota kajian PHP: Asas pengaturcaraan berorientasikan objek

Nota kajian PHP: Asas pengaturcaraan berorientasikan objek, contoh kod khusus diperlukan

Pengenalan:
Pengaturcaraan Berorientasikan Objek (OOP) ialah cara pemikiran pengaturcaraan yang menguraikan masalah kepada pelbagai objek dan menentukan interaksi antara objek untuk menyelesaikan masalah pengaturcaraan yang kompleks. Sebagai bahasa pengaturcaraan yang berkuasa, PHP juga menyokong pengaturcaraan berorientasikan objek. Artikel ini akan memperkenalkan konsep asas dan sintaks biasa pengaturcaraan berorientasikan objek dalam PHP, dan menyediakan contoh kod khusus.

  1. Kelas dan Objek
    Dalam pengaturcaraan berorientasikan objek, kelas ialah templat objek, menerangkan sifat (pembolehubah ahli) dan tingkah laku (fungsi ahli) objek. Objek ialah contoh kelas, dicipta dengan membuat instantiating kelas. Berikut ialah definisi kelas mudah dan contoh penciptaan objek:
class Person {
    // 成员变量
    public $name;
    public $age;
    
    // 构造函数
    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }
    
    // 成员函数
    public function sayHello() {
        echo "Hello, my name is " . $this->name . " and I am " . $this->age . " years old.";
    }
}

// 创建一个Person对象
$person = new Person("Alice", 25);
$person->sayHello();  // 输出:Hello, my name is Alice and I am 25 years old.
Salin selepas log masuk

Dalam contoh di atas, kami mentakrifkan kelas Orang, yang mengandungi dua pembolehubah ahli $nama dan $umur, pembina dan fungsi Ahli sayHello(). Segerakan kelas Person melalui kata kunci new untuk mencipta objek Person dan panggil fungsi ahli objek sayHello() untuk mengeluarkan maklumat objek. new关键字实例化Person类来创建一个Person对象,并调用对象的成员函数sayHello()输出对象的信息。

  1. 封装、继承与多态
    封装、继承和多态是面向对象编程的三大核心特性,它们分别解决了代码复用和扩展的问题。

2.1 封装
封装是指将数据和方法封装在一个类中,并通过访问控制符(public、protected、private)控制数据和方法的访问权限。下面是一个封装的示例:

class Car {
    private $color;
    protected $price;
    
    public function __construct($color, $price) {
        $this->color = $color;
        $this->price = $price;
    }
    
    public function getColor() {
        return $this->color;
    }
    
    public function setColor($color) {
        $this->color = $color;
    }
    
    protected function getPrice() {
        return $this->price;
    }
}

$car = new Car("red", 50000);
echo $car->getColor();  // 输出:red
$car->setColor("blue");
echo $car->getColor();  // 输出:blue
Salin selepas log masuk

在上面的示例中,我们定义了一个Car类,将颜色和价格封装在类中。通过getColor()和setColor()公有的方法来获取和设置颜色。同时,我们将价格属性设置为受保护的,只能在类内部和子类中访问。

2.2 继承
继承是指一个类可以通过继承另一个类的属性和方法。子类可以重写父类的方法,并且可以新增自己的属性和方法。下面是一个继承的示例:

class Car {
    protected $color;
    
    public function __construct($color) {
        $this->color = $color;
    }
    
    public function getColor() {
        return $this->color;
    }
}

class ElectricCar extends Car {
    private $batteryCapacity;
    
    public function __construct($color, $batteryCapacity) {
        parent::__construct($color);
        $this->batteryCapacity = $batteryCapacity;
    }
    
    public function getBatteryCapacity() {
        return $this->batteryCapacity;
    }
}

$electricCar = new ElectricCar("red", 50);
echo $electricCar->getColor();  // 输出:red
echo $electricCar->getBatteryCapacity();  // 输出:50
Salin selepas log masuk

在上面的示例中,我们定义了一个Car类和一个ElectricCar类,ElectricCar类继承自Car类。子类ElectricCar通过parent::__construct()

    Pengenkapsulan, pewarisan dan polimorfisme

    Pengenkapsulan, pewarisan dan polimorfisme ialah tiga ciri teras pengaturcaraan berorientasikan objek. Mereka menyelesaikan masalah penggunaan semula dan pengembangan kod.

    2.1 Enkapsulasi

    Enkapsulasi bermaksud merangkum data dan kaedah dalam kelas, dan mengawal hak akses data dan kaedah melalui aksara kawalan akses (awam, dilindungi, peribadi). Berikut ialah contoh enkapsulasi:

    class Shape {
        public function calculateArea() {
            return 0;
        }
    }
    
    class Rectangle extends Shape {
        private $width;
        private $height;
        
        public function setDimensions($width, $height) {
            $this->width = $width;
            $this->height = $height;
        }
        
        public function calculateArea() {
            return $this->width * $this->height;
        }
    }
    
    class Circle extends Shape {
        private $radius;
        
        public function setRadius($radius) {
            $this->radius = $radius;
        }
        
        public function calculateArea() {
            return pi() * $this->radius * $this->radius;
        }
    }
    
    $shapes = array(new Rectangle(), new Circle());
    $shapes[0]->setDimensions(5, 3);
    $shapes[1]->setRadius(2);
    
    foreach ($shapes as $shape) {
        echo $shape->calculateArea() . "<br>";
    }
    Salin selepas log masuk

    Dalam contoh di atas, kami mentakrifkan kelas Kereta untuk merangkum warna dan harga dalam kelas. Dapatkan dan tetapkan warna melalui kaedah awam getColor() dan setColor(). Pada masa yang sama, kami menetapkan atribut harga sebagai dilindungi dan hanya boleh diakses di dalam kelas dan subkelas. 🎜2.2 Warisan🎜Warisan bermaksud satu kelas boleh mewarisi sifat dan kaedah kelas lain. Subkelas boleh mengatasi kaedah kelas induk dan menambah sifat dan kaedah mereka sendiri. Berikut ialah contoh warisan: 🎜rrreee🎜 Dalam contoh di atas, kami telah mentakrifkan kelas Kereta dan kelas ElectricCar, dan kelas ElectricCar mewarisi daripada kelas Kereta. Subkelas ElectricCar memanggil pembina kelas induk melalui kaedah parent::__construct() dan menambah atribut dan kaedah getBatteryCapacity(). 🎜🎜2.3 Polimorfisme🎜Polymorfisme bermaksud kaedah yang sama boleh memanggil tingkah laku yang berbeza berdasarkan objek yang berbeza. Iaitu, subkelas boleh mengatasi kaedah kelas induk untuk mencapai polimorfisme. Berikut ialah contoh polimorfisme: 🎜rrreee🎜 Dalam contoh di atas, kami telah mentakrifkan kelas Bentuk dan dua subkelas Segiempat dan Bulatan. Mereka berkongsi kaedah kelas induk calculateArea(), tetapi subkelas mengatasi kaedah ini untuk melaksanakan gelagat pengiraan kawasan yang berbeza. 🎜🎜Kesimpulan: 🎜Artikel ini memperkenalkan konsep asas dan sintaks biasa pengaturcaraan berorientasikan objek dalam PHP, dan menyediakan contoh kod khusus. Pengaturcaraan berorientasikan objek ialah cara pemikiran pengaturcaraan yang berkuasa yang boleh meningkatkan kebolehgunaan semula dan kebolehskalaan kod. Saya berharap pembaca dapat memperoleh pemahaman yang lebih mendalam tentang pengaturcaraan berorientasikan objek melalui artikel ini dan dapat menggunakannya secara fleksibel dalam pembangunan sebenar. 🎜

    Atas ialah kandungan terperinci Nota kajian PHP: Asas pengaturcaraan berorientasikan objek. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Tarikh dan Masa CakePHP Tarikh dan Masa CakePHP Sep 10, 2024 pm 05:27 PM

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Bincangkan CakePHP Bincangkan CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Muat naik Fail CakePHP Muat naik Fail CakePHP Sep 10, 2024 pm 05:27 PM

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Pengesah Mencipta CakePHP Pengesah Mencipta CakePHP Sep 10, 2024 pm 05:26 PM

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Panduan Ringkas CakePHP Panduan Ringkas CakePHP Sep 10, 2024 pm 05:27 PM

CakePHP ialah rangka kerja MVC sumber terbuka. Ia menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP mempunyai beberapa perpustakaan untuk mengurangkan beban tugas yang paling biasa.

Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Feb 07, 2025 am 11:57 AM

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

See all articles