Heim 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();
?>

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

CakePHP-Projektkonfiguration CakePHP-Projektkonfiguration Sep 10, 2024 pm 05:25 PM

In diesem Kapitel werden wir die Umgebungsvariablen, die allgemeine Konfiguration, die Datenbankkonfiguration und die E-Mail-Konfiguration in CakePHP verstehen.

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

CakePHP Datum und Uhrzeit CakePHP Datum und Uhrzeit Sep 10, 2024 pm 05:27 PM

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

CakePHP-Datei hochladen CakePHP-Datei hochladen Sep 10, 2024 pm 05:27 PM

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

CakePHP-Routing CakePHP-Routing Sep 10, 2024 pm 05:25 PM

In diesem Kapitel lernen wir die folgenden Themen im Zusammenhang mit dem Routing kennen.

Besprechen Sie CakePHP Besprechen Sie CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

CakePHP erstellt Validatoren CakePHP erstellt Validatoren Sep 10, 2024 pm 05:26 PM

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.

See all articles