Maison php教程 php手册 php面向对象开发学习笔记

php面向对象开发学习笔记

Jun 13, 2016 am 09:51 AM
php programming 学习 对象 开发 程序设计 笔记 英语 面向

面向对象程序设计(英语:Object-oriented programming,缩写:OOP),指一种程序设计范型,同时也是一种程序开发的方法。对象指的是类的集合。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性

注意:
1.在定义对象方法的时候,虽然不用在前面写public默认为公共方法,但是建议写上。

php面向对象第一天

1.什么是面向对象


要素:抽象性,封装性,共享性,强调对象结构而不是程序结构。

什么是类?
可以理解成一个功能集合菜单,我们通过类来实现生成我们的方法。
例:一台电脑
类:显示器/键盘/主机...的集合(封装)。
对象:显示器/键盘/主机……其中之一,拥有自己的独有功能。
属性:电脑。
方法:提高功能,看电影,玩游戏,编程,上网……。

 

2.使用class创建一个类
有了类才能有方法。
格式:
class 方法名 {
......
}

成员属性:自定义变量(一个名而已)。
成员方法:自定义功能。

 

3.类的成员属性和成员方法
注意:使用public来定义成员属性不要用var。

实例:

 代码如下 复制代码
class MyPc { //声明一个类,定义一个方法MyPc。
public $name; //成员属性。
var $price; //成员属性
function vod() { //成员方法,实现返回字符串功能。
return "test";
}
}


4.使用new函数对象实例化
格式:new 对象名(参数)
实例1:

 代码如下 复制代码

class MyPc { //声明一个类,定义一个方法MyPc。
public $name; //成员属性。
var $price; //成员属性
function vod() { //成员方法,实现返回字符串功能。
return "test";
}
}

$pc1 = new Mypc(); //实例化
$pc1 -> name;


实例2:

 代码如下 复制代码

class MyPc {

 var $key;
 public $name;

 function vod() {
  echo "hello";
 }

}

$pc1 = new MyPc();
$pc1->key = "10101010";

echo $pc1->key;
?>


 

php面向对象第二天


1.创建一个和多个对象。
2.对象中的 $this 关键字。
3.初始化对象 __construct()
4.析构函数 __destruct()

-----------------------------------------

1.创建一个和多个对象
创建一个和多个对象我们只需要多次使用 new 函数,对类进行实例化。
实例:

 代码如下 复制代码

class MyPc {
public $name;
public $price;

function vod() {
return "播放电影";
}
....
}

$pc1 = new MyPc();
$pc2 = new MyPc();
$pc3 = new MyPc();

 

2.对象中的 $this 关键字
$this 关键字是用来访问当前对象中的对象属性和对象方法的系统变量。
范围:该类当中。
实例:

 代码如下 复制代码
class MyPc {
public $name;--------
public $price;      |
                    |
function vod() {    |
$this->name; }
....
$this->vod(); //这样输出调用的就是 public $name;
....
}

实例2:

 代码如下 复制代码

class MyPc {
 public $name;

 function vod() {
  return $this->name . " 正在播放 未来战警";
 }
 function game() {
  return $this->vod() . " 正在运行 魔兽世界";
 }

}
$pc1 = new MyPc();
$pc2 = new MyPc();

$pc1->name = "1号计算机";
$pc2->name = "2号计算机";
echo $pc1->vod() . "
";
echo $pc2->game() . "
";
?>


 

3.初始化对象 __construct()
初始化相当于就是预先预定好某个成员属性的初始值。

格式:
class MyPc {
function __construct() {
初始化操作
}
}

实例:

 代码如下 复制代码

class MyPc {
 public $name;

 function __construct($name = "") { //初始化。
  $this->name = $name; //把初始化内容第四行的 $name = "" 赋值给 $this 取到的第三行的 public $name;。
 }

 function vod() {
  return $this->name . " 正在播放 未来战警";
 }

 function game() {
  return $this->vod() . " 正在运行 魔兽世界";
 }

}
$pc1 = new MyPc("1号计算机"); //这里进行初始化。
$pc2 = new MyPc("2号计算机");

echo $pc1->vod() . "
";
echo $pc2->game() . "
";
?>

4.析构函数 __destruct()
能够在对象释放时自动被调用的方法,被成为析构函数,也能理解为垃圾回收机制。
规则:后进先出,先实例化后释放,最后实例化调用,最先释放。
最后被调用。

实例:

 代码如下 复制代码

class MyPc {
 public $name;

 function __construct($name = "") {
  $this->name = $name;
 }

 function vod() {
  return $this->name . " 正在播放 未来战警";
 }

 function game() {
  return $this->vod() . " 正在运行 魔兽世界";
 }

 function __destruct() { //后进先出。
  echo "
垃圾回收机制:" . $this->name . "
";
 }

}
$pc1 = new MyPc("1号计算机");
$pc2 = new MyPc("2号计算机");

echo $pc1->vod() . "
";
// $pc1 = null; //这里是当特殊需要执行完毕立即回收内存的话,可以使用null。
echo $pc2->game() . "
";
?>

php面向对象第三天


类的封装和应用

1.封装关键字:public , protected , private。
2.封装相关函数:__set() , __get()。

-----------------------------------------------

1.封装关键字:public , protected , private
封装是把一些相关的属性和行为隐藏起来,从而得到保护和安全。

封装关键字
public:表示全局,类内部外部子类都可以访问。
protected:表示受保护的,只有本类或子类或父类中可以访问。
private:表示私有的,只有本类内部可以使用。[重要:这个关键字在使用时,调用私有属性或方法,只能在本类调用,感觉就像多一道工序,做一个跳板。详见实例2]

       public     protected     private
 全局     1           0            0
继承类    1           1            0
 本类     1           1            1

实例:

 代码如下 复制代码

class MyPc {
 public $name; //公共属性
 protected $price; //保护属性

 private function vod() { //私有属性
  $this->name;
 }
  . . .
 }
?>

实例2:

 代码如下 复制代码

class MyPc {
 private $name;
 function __construct($name = "") {
  return $this->name = $name;
 }
 private function open() {
  return $this->name . "---打开电源,正在开机";
 }
 public function ok() {
  return $this->open() . "---OK";
 }
}
$pc = new MyPc("我的电脑");
echo $pc->ok();
?>

 


分装相关函数: __set() , __get() 作用:操作私有属性或方法。
__set():取得当前类中封装过的私有属性或私有方法,重新执行或赋值操作。
格式:__set($n,$v)

__get():取得(间接访问防止裸输出)当前类中封装过的属性或方法并转换成公有属性。

__get/__set实例:

 代码如下 复制代码

class MyPc {
 private $name;
 public function __construct($name = "") {
  return $this->name = $name;
 }

 public function __get($name) {
  return $this->name . "__get";
 }
 public function __set($n, $v) { //$n对应对象属性$name,$v对应倒数第三行__set。
  $this-> $n = $v;
 }
 private function open() {
  return $this->name . "---打开电源,正在开机";
 }
 public function ok() {
  return $this->open() . "---OK";
 }
}
$pc = new MyPc("我的电脑");
$pc->name = "__set";
echo $pc->name;
?>

类的继承和应用

1.继承关键字:extends。
2.PHP继承的规则。
3.基类方法重载和基类方法访问。

------------------------------------------------

1.继承关键字:extends
PHP类的继承,我们可以理解成共享被继承类(基类)的类容。
注意:PHP是单一继承。

 

2.格式

 代码如下 复制代码

class MyPc {
...
}

class Home extends MyPc {
...
}

3.基类方法重载和基类方法访问
格式:基类名::原始基类方法名称

 

4.实例
继承:

 代码如下 复制代码

class Root {
 public function print1() {
  return "Root_print";
 }
}

class Son extends Root {
 public function print2() {
  return "Son_print";
 }
}

$p = new Son();
echo $p->print1();
?>

重载:
如果基类的某个方法需要在派生类中加强,那么可以用重载功能

 代码如下 复制代码

class Root {
 public function print1() {
  return "Root_print";
 }
}

class Son extends Root {
 public function print1() {
  return Root :: print1() . "
Son_print";
 }
}

$p = new Son();
echo $p->print1();
?>


 

类的抽象方法和类

其实也可以理解为,这是一个规范。在类的开头定义一个抽象类和方法,然后在下面的类继承抽象类,这样可以强制规范以下派生类的方法命名(就只是在抽象类中定义的抽象方法名,还可自己增加,但是主要的不能修改)。

1.抽象关键字:abstract。
2.抽象方法和抽象类的定义。
3.抽象类和方法使用规则。

-----------------------------------------

1.抽象关键字:abstract
抽象就是无法确切的说明,但又有一定的概念或者名称。

 

2.抽象方法和抽象类的定义
一个类至少有一个方法是抽象的,我们称之为抽象类。
所以如果定义抽象类首先定义抽象方法。
格式:
abstract class class1 {

abstract function fun1();

...
}
注意:1.类中至少有一个抽象方法。;2.抽象方法不允许有{}。;3.抽象方法前面必须加 abstract 。

 

3.抽象类和方法使用规则
抽象类特点:
1.不能被实例化,只能被继承。
2.继承的派生类当中要把所有抽象方法重载才能被实例化。
格式(不可以实例化):
abstract class cl1 {

abstract function fun1();

...
}

格式(可以实例化):
class cl2 extends cl1 {

function fun1() { //重载抽象方法
}
...
}

---------------------------------------------------
实例:

 代码如下 复制代码

abstract class ChouXiang {
 abstract function fun1();

}

class PaiShengLei extends ChouXiang {
 public function fun1() { //重载
  echo "test";
 }
}

$p = new PaiShengLei();
$p->fun1();
?>

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Date et heure de CakePHP Date et heure de CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Discuter de CakePHP Discuter de CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Téléchargement de fichiers CakePHP Téléchargement de fichiers CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

CakePHP créant des validateurs CakePHP créant des validateurs Sep 10, 2024 pm 05:26 PM

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

Guide rapide CakePHP Guide rapide CakePHP Sep 10, 2024 pm 05:27 PM

CakePHP est un framework MVC open source. Cela facilite grandement le développement, le déploiement et la maintenance des applications. CakePHP dispose d'un certain nombre de bibliothèques pour réduire la surcharge des tâches les plus courantes.

Comment analysez-vous et traitez-vous HTML / XML dans PHP? Comment analysez-vous et traitez-vous HTML / XML dans PHP? Feb 07, 2025 am 11:57 AM

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

See all articles