Alami kelas dan objek
1, PHP pengenalan berorientasikan objek
Dalam pengaturcaraan berorientasikan objek (Bahasa Inggeris: Pengaturcaraan berorientasikan objek, singkatan maklumat dan objek ialah koleksi OOP), keseluruhan huraian yang diproses adalah abstraksi dunia sebenar.
Di dunia nyata, perkara yang kita hadapi adalah objek, seperti komputer, televisyen, basikal, dll.
Tiga ciri utama objek:
Tingkah laku objek: Apakah operasi yang boleh digunakan pada objek, menghidupkan lampu dan mematikan lampu adalah tingkah laku. Bentuk objek: bagaimana objek bertindak balas apabila kaedah tersebut digunakan, warna, saiz, rupa. Perwakilan objek: Perwakilan objek adalah bersamaan dengan kad ID, khususnya membezakan perbezaan dalam tingkah laku dan status yang sama.
Sebagai contoh, Haiwan ialah kelas abstrak Kita boleh menentukan anjing dan biri-biri, dan anjing dan biri-biri adalah objek konkrit Mereka mempunyai atribut warna, boleh ditulis, boleh berlari dan keadaan tingkah laku yang lain.
Kandungan berorientasikan objek
Kelas − mentakrifkan ciri abstrak sesuatu perkara. Takrif kelas termasuk bentuk data dan operasi pada data.
Objek − ialah contoh kelas.
Pembolehubah ahli − Pembolehubah ditakrifkan di dalam kelas. Nilai pembolehubah ini tidak dapat dilihat oleh dunia luar, tetapi boleh diakses melalui fungsi ahli Selepas kelas dijadikan sebagai objek, pembolehubah boleh dipanggil atribut objek.
Fungsi ahli − ditakrifkan di dalam kelas dan boleh digunakan untuk mengakses data objek.
Warisan − Warisan ialah mekanisme untuk subkelas berkongsi struktur data dan kaedah kelas induk secara automatik. Ini adalah hubungan antara kelas. Apabila mentakrifkan dan melaksanakan kelas, anda boleh melakukannya berdasarkan kelas sedia ada, mengambil kandungan yang ditakrifkan oleh kelas sedia ada sebagai kandungan anda sendiri dan menambah beberapa kandungan baharu.
Kelas induk − Kelas diwarisi oleh kelas lain. Kelas ini boleh dipanggil kelas induk, kelas asas atau kelas super.
Subkelas − Kelas yang mewarisi kelas lain dipanggil subkelas, atau ia juga boleh dipanggil kelas terbitan.
Polymorphism − Polimorfisme bermaksud fungsi atau kaedah yang sama boleh bertindak pada pelbagai jenis objek dan memperoleh hasil yang berbeza. Objek yang berbeza boleh menghasilkan hasil yang berbeza apabila menerima mesej yang sama Fenomena ini dipanggil polimorfisme.
Melebihi muatan − Ringkasnya, ia adalah situasi di mana fungsi atau kaedah mempunyai nama yang sama tetapi senarai parameter yang berbeza Fungsi atau kaedah sedemikian dengan nama yang sama dan parameter yang berbeza dipanggil fungsi atau kaedah terlebih beban.
Abstraksi − Abstraksi merujuk kepada mengabstraksi objek dengan struktur data (atribut) dan gelagat (operasi) yang konsisten ke dalam kelas. Kelas ialah abstraksi yang mencerminkan sifat penting yang berkaitan dengan aplikasi sambil mengabaikan kandungan lain yang tidak berkaitan. Pembahagian mana-mana kelas adalah subjektif, tetapi mesti berkaitan dengan aplikasi tertentu.
Encapsulation − Enkapsulasi merujuk kepada mengikat sifat dan tingkah laku objek yang wujud dalam dunia nyata bersama-sama dan meletakkannya dalam unit logik.
Pembina − Digunakan terutamanya untuk memulakan objek semasa mencipta objek, iaitu, memberikan nilai awal kepada pembolehubah ahli objek Ia sentiasa digunakan bersama-sama dengan operator baharu dalam pernyataan untuk mencipta objek.
Destructor − Destructor (pemusnah) Bertentangan dengan pembina, apabila objek menamatkan kitaran hayatnya (contohnya, fungsi di mana objek terletak telah dipanggil), sistem secara automatik melaksanakan pemusnah. Pemusnah selalunya digunakan untuk melakukan kerja "pembersihan" (contohnya, semasa mencipta objek, gunakan baharu untuk membuka ruang ingatan, yang harus dikeluarkan dengan pemadaman dalam pemusnah sebelum keluar).
2. Tentukan kelas pelajar
Dua konsep dicadangkan dalam pemikiran berorientasikan objek, kelas dan objek dari objek ini Kita biasanya Bagaimana untuk menggambarkan ciri-ciri seseorang Sebagai contoh, jika kita ingin memahami pelajar, kita mesti terlebih dahulu mengetahui nama pelajar, jantina, umur, rupa, dan lain-lain. dipanggil ahli dalam kelas Atribut Selepas memahami sifat-sifat asas seseorang, kita ingin lebih memahami apa yang akan dilakukan oleh orang itu. Ia dipanggil kaedah ahli dalam kelas butiran khusus orang tersebut. Ambil pelajar sebagai contoh
Mula-mula buat kelas pelajar, ditakrifkan sebagai fail Student.class.php (di sini, untuk membezakan fail skrip biasa, nama kelas biasanya ditukar kepada bentuk daripada ".class.php", dan nama kelas perlu sama dengan Pastikan nama fail konsisten)
Nota: Ia adalah tepat kerana nama fail kelas mesti konsisten dengan nama kelas, jadi a Fail php hanya boleh mengandungi satu kod definisi kelas.
<?php /** * Created by PhpStorm. * User: Administrator * Date: 2018/3/3 0003 * Time: 上午 9:42 */ //定义student类 class Student{ //成员属性 //成员方法 }Biasanya konvensyen penamaan PHP untuk kelas adalah seperti berikut:
(1) Gunakan kata nama bahasa Inggeris dan fail kelas ditulis dalam kes unta. Pisahkan perkataan dengan huruf besar, gunakan huruf kecil untuk semua huruf lain, gunakan huruf besar untuk huruf pertama kata nama dan jangan gunakan garis bawah. . Jika anda masih tidak ingat apakah kelas itu berdasarkan petunjuk yang diberikan oleh nama kelas, maka reka bentuk anda tidak cukup bagus.
(4) Nama kelas campuran yang terdiri daripada lebih daripada tiga perkataan boleh menyebabkan kekeliruan antara pelbagai entiti dalam sistem.
Contohnya:
class UserAccount{
...
}
class PaintingOrder{
...
}
kaedah ahli semula
, ahli 4. Penciptaan objek
Buat fail php baharu untuk membuat instantiate objek pelajarobjek.php:
<?php class Student{ //成员属性 public $studentId; //学生学号 public $studentName;//学生姓名 public $studentAge; //学生年龄 //成员方法 public function goSchool(){ echo "{$this->studentName}去上学<br>"; } public function study($time){ echo "学习到{$time}"; } }
Hasil cetakan adalah seperti berikut:
. Keputusan adalah seperti berikut:
6, panggilan kaedah ahli
Tambahkan kod berikut dalam objek:<?php /** * Created by PhpStorm. * User: Administrator * Date: 2018/3/3 0003 * Time: 上午 10:25 */ header("content-type:text/html;charset=utf8"); require './Student.class.php'; $student=new Student(); echo "<pre>"; var_dump($student);//查看对象的类型以及具体数据 echo "</pre>";
hasil cetakan