OOP面向对象

OOP 即 Object Oriented Programming

1、面向过程开发方式的缺点

1)代码的重用性太低(函数)

2)代码的扩展性太低(高内聚低耦合)

3)代码的升级困难


2、区别

面向对象编程:关心的是你去做什么(人->(吃饭,运动,睡觉))

面向过程编程:关心的是怎么去做(人->买菜->做饭->吃饭)


3、面向对象三大特点

1)继承性:代码重用

2)封装性:对相似数据和操作进行封装,保证代码安全和重用

3)多态性:覆盖和重载


4、关键词

类(class):相似的数据和数据操作的封装

成员量(修饰词+名称):修饰(public/protected/private)+普通的变/常量

成员方法(修饰词+方法名):修饰(public/protected/private)+方法

实例化(new):类创建对象的过程

对象(object):类的特例/实例


5、类的创建

1)创建类Human

<?php 
	/**
	* 创建一个Human类
	*/
	class Human{
		public $name;   // 成员变量 名字
		public $age;    // 成员变量  年龄
		public function run(){   // 成员方法 跑

		}
	}
?>

规范:1)类名只能使用字母,下划线开头,不能以数字开头

    2)类名不能使用关键字

    3)类名不区分大小写,最好使用驼峰写法(userModel...)

    4) 类名、成员变量、成员方法名一定要有意义(可读性)

2)实例化类:

对象变量 = new 类名;

对象变量 = new 类名();

对象变量:普通的变量,类型为对象类型

$object = new Human;  //实例化Human类 $object为对象型变量
$object = new Human();

3)类的使用:

is_object():判断变量是否是对象类型

instanceof:判断某个变量是否是某个类的实例化

$object instanceof Human //判断$object是否是Human类的实例化  返回1/0

6、成员变量

修饰符 变量名[=值];

类外调用:对象名->变量名(无$);

类内调用:$this->变量名(无$);

       $this:对象本身;


7、成员方法

修饰符 function 方法名(参数){

      ...

     返回值

}

类外调用:对象->方法名(实参列表);

类内调用:$this->方法名(实参列表);



8、类常量

Const 大写常量名 = 值;

Const HOST = “localhost”;

类外调用: 类名::常量名;

类内调用: self::常量名;

:: -> 作用域操作符

 
9、魔术方法

定义:用户对类执行了某操作后,系统自动调用的一系列方法

1)__construct(): //构造方法 

功能:初始化对象时,所必须的数据(成员变量)和操作(成员方法)
调用时间:1)分配类对象所必须的变量空间

      2)调用构造函数

      3)初始化数据

注意:1)如果类中无构造函数,系统会自动调用一个空的构造函数

   2)方法名和类名相同,就默认是一个构造函数

   3)如果__construct()和 Class()同名方法同时存在,优先调用前者,后者失效

   4)构造函数内不允许有返回值


2)__destruct()://析构方法

功能:对象销毁时,销毁一些不必要的变量;

    系统出错时,销毁数据和错误检查,清理一些占用的资源

销毁对象:1-人工销毁对象:对象=null; 

                 unset(对象);

      2-系统销毁:系统会在页面加载完毕后,不使用该对象时,自动销毁










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值