php面向对象的程序设计Word文档格式.docx

上传人:b****4 文档编号:17862845 上传时间:2022-12-11 格式:DOCX 页数:10 大小:134.58KB
下载 相关 举报
php面向对象的程序设计Word文档格式.docx_第1页
第1页 / 共10页
php面向对象的程序设计Word文档格式.docx_第2页
第2页 / 共10页
php面向对象的程序设计Word文档格式.docx_第3页
第3页 / 共10页
php面向对象的程序设计Word文档格式.docx_第4页
第4页 / 共10页
php面向对象的程序设计Word文档格式.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

php面向对象的程序设计Word文档格式.docx

《php面向对象的程序设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《php面向对象的程序设计Word文档格式.docx(10页珍藏版)》请在冰豆网上搜索。

php面向对象的程序设计Word文档格式.docx

添加,修改,删除

电子商城:

用户,购物车,商品,分类,订单

什么是类:

分类、类型

桌子类,椅子类,电脑类

在类中定义这个类型的属性和方法。

类和对象之间的关系:

声明类------>

实例化对象(创建对象)--------->

用对象

配置单:

Cpu:

e74002.8

内存:

2G

显卡:

5129300

主板:

硬盘:

Price:

定义出电脑的类型,(配置单就是类)

安装出100台电脑(每个电脑就是一个对象)

操作电脑就是在操作对象。

在声明类时,类中的内容就是成员的属性和成员方法,这个类创建出的对象中的内容,就是你在类中声明的内容。

第二讲类的声明与实例化对象

类的声明:

[修饰类的关键字]Class类名{

}

在类中声明成员属性时,前面必须有修饰词,如果不知道使用什么修饰词时,可以使用var。

类中的成员属性,如果创建多个对象时,每个对象的值不同,则不要给初值,

一个文件只保存一个类,文件中包含类名。

文件:

类名.class.php

变量:

aaBbbCcc

函数:

aaBB

常量:

AABB

类名:

AaaBbbCcc

通过类实例化对象

1、使用new新建一个对象,加上类名,就是创建类的对象。

2、只要有一个new关键字就是一个对象,创建了一个对象就在内存中分配了一个空间

对象在内存中的分配

内存中的分配

对象中的成员必须通过对象的引用来访问

对象引用名->

属性;

方法;

$p1=newperson();

$p1->

name="

zhangsan"

;

say();

第三讲构造方法和析构方法

一、对象中成员的访问:

就是在一个对象的内部方法中,去访问本对象中

的其他方法和属性。

2、在对象中的方法中都默认有一个$this关键字,这个关键字代表调用本对象中的其它属性和方法。

3、构造方法:

构造器

1、对象创建完成以后,第一个自动调用的方法。

2、构造方法的定义:

方法名是固定的

在php4中,和类名相同的方法就是构造方法。

在Php5中,构造方法是用魔术方法_construct()所有类中声明

构造方法都是用这个。

什么是魔术方法:

在类中写出了某个魔术方法,这个方法对应的功能就会添加上,方法名称都是固定的(都是系统给我们提供好的),没有自己定义的,每一个魔术方法都是为了在不同时刻完成某一功能自动调用的,不同的魔术方法有不同的调用时期。

以__开头的

__construct()

__destruct()

__set()

__get()

__unset()

__clone()

__call()

__sleep();

__weakup();

__toString();

有时候为了版本兼容,这两种写法都需要写出来。

3、作用:

就是为成员属性初始化。

5、析构方法

1、当对象被释放之前最后一个“自动”调用的方法。

使用垃圾回收器(java,php),而c++手动的释放

2、作用:

关闭一些资源,做一些清理的工作。

第四讲面向对象的三大特性之一—封装性

一、就是把对象的成员(属性,方法)结合成一个独立的相同单位,并尽可能隐藏对象的内部细节

二、publicprotected

Private私有的,用这个关键字修饰的成员,只能在对象内部访问,不能在对象外部使用。

作用:

属性可以封装:

只要一个变量,需要在多个方法中使用,就将这个方法声明为成员属性,可以直接在这个对象中的所有方法中使用,成员属性,就相当于这个对象中的全局变量,成员属性都会在方法中使用,成员属性值的变换其实就是在改变方法的执行行为,也就是改变了对象的功能,成员属性的值如果不正常,方法执行的功能也就不正常了。

作用:

不需要在对象外修改和访问,经过方法对象成员属性进行赋值和取值可以控制。

方法可以封装:

100个成员,只能取值,不能改。

和封装有关的魔术方法:

__set();

直接设置成员属性值时,自动调用的方法

__get();

直接获取成员属性值时,自动调用的方法。

__isset();

直接查看对象中私有属性是否存在时,自动调用的方法

__unset();

直接删除对象中的私有属性时,自动调用的方法

第四讲面向对象的三大特性之——继承性

开放性和可扩充性

增加了代码的重用性

提高软件的可维护性

继承就是用子类去扩展父类

Php和java属于单继承,也就是只能有一个父类

C++属于多继承,一个类可以有多个父类。

不管是多继承还是单继承都可以有多个子类

只要你在设计两个类时候,有可以共享的成员,就可以共享的内容拿出来,单独作为一个基类使用

父类:

基类

子类:

派生类

1、类继承的应用

1、声明一个子类,使用extends关键字去继承一个父类

2、子类可以从父类继承所有的内容。

在子类中可以直接使用。

Classperson{

Var$name;

Var$age;

Var$sex;

Functionsay(){

 

Functioneat(){

Functionrun(){

1、如果两个或以上的类中,有公共的部分,就可以共享,共享的就可以作为父类。

2、如果三个类都需要添加同一个功能,只要在父类中添加,所有子类都多了一个功能。

3、如果父类中修改一个成员,则所有子类中的成员也被修改。

2、访问类型的控制

封装时候,既可以让自己类的内部可以访问,也可以让子类用,但是类的外部不能使用。

Protected就可以

3、子类中重载父类的方法

1、子类可以声明和父类相同的方法名,即子类覆盖了父类中同名的方法。

2、在子类中调用父类中被覆盖的方法:

父类名:

方法名();

或者parent:

:

3、在子类中编写构造方法,如果父类中也有构造方法一定要去调用父类中被覆盖的构造方法。

注意:

子类中重载的方法,不能低于父类中的访问权限。

(子类可以放大权限,但是不能缩小权限。

第五讲常见的关键字和魔术方法

1、关键字

Final

1、final不能修饰成员属性(类中的常量不是用这个关键字)

2、final只能修饰类和方法

使用final修饰的类不能被子类继承

Final修饰的方法不能被子类覆盖。

用来限制类不被继承,方法不被覆盖。

Static

1、使用static可以修饰成员属性和成员方法。

2、用static修饰的成员属性,可以被同一个类的所有对象共享。

3、静态的数据是放在内存中的数据段(初始化数据段)

4、是在类第一次加载时,分配到内存中,以后再用到类时就直接从数据段中获取

5、什么是被加载?

只要是使用这个类,就会被加载(只要有类名出现)

注意:

静态成员都要使用类名去访问,不用创建对象,不用对象去访问。

类名:

静态成员

如果在类中使用静态成员,可以使用self代表本类名。

即:

self:

6、静态方法不能非静态的成员。

非静态的方法中可以访问静态成员。

因为非静态的成员,就必须用对象来访问,访问内部的成员使用的是$this

静态方法不能使用对象来调用,也就没有对象,$this也就不能代表什么对象,非静态的成员必须使用对象。

如果你确定一个方法不使用费静态的成员,则可以将这个方法声明为静态方法,不用创建对象,直接使用类名就可以访问。

Const

1、只能修饰成员属性,不能修饰方法,也不能修饰类。

2、在类中声明常量使用const

3、命名的方式和以前学的define是一样的。

4、访问方式和static静态成员属性是一样的,在类外部使用类名:

常量在类内部:

self:

常量

5、常量一定要在声明时候就给初值。

常量不允许改值。

2、魔术方法

__call()

__toString()

直接输出对象引用时自动调用,用来快速获取对象的字符串表示的最便捷的方式

克隆对象,使用clone去处理。

原本(原来的对象)

复本(复制出来的对象)

__clone()就是在克隆对象时候自动调用的方法

只要一个对象诞生,就要有初始化的动作,和构造方法__construc作用相似。

在__clone()方法中的$this关键字,代表的是复本,that代表的是原本的对象。

__autoload()

其他的魔术方法都是在类中添加的起作用,这是一个唯一不在类中添加的方法。

只要在页面中使用到一个类,只要用到类名就会自动将类名传给这个参数。

Serialize():

参数是一个对象,返回来的是串行化后的二进制串。

对象串行化,将一个对象转为二进制

1、将对象长时间存储在数据库或文件中时

2、将对象在多个php文件中传输时

Unserialize():

参数是返回来的二进制串,返回来的是新生产的对象。

__sleep()

是在序列化时自动调用的方法

作用:

可以将一个对象部分串行化,只要这个方法中返回一个数组,数组中有几个成员就序列化几个成员,如果不加这个方法,则所有的成员都被序列化。

__wakeup()

是在反序列化时自动调用的方法

也是对象重新诞生的一个过程

第六讲抽象类和抽象方法的应用

抽象类是一种特殊的类,接口是一种特殊的抽象类,而多态就要使用到抽象类或是接口。

一、声明抽象类和接口。

抽象类:

1、什么是抽象方法?

如果一个类中的方法,没有方法体的方法,就是抽象方法。

Functiontest();

而不是functiontest(){}

如果方法是抽象方法,就必须使用abstract

2、为什么要使用抽象方法?

3、什么是抽象类?

如果一个类中,有一个方法是抽象的,则这个类就是抽象类。

如果一个类时抽象的,则这个类必须要使用abstract修饰

抽象类是一种特殊的类,,就是因为一个类中有抽象方法,其

他不变。

也可以在抽象类中声明成员属性,常量,非抽象

的方法。

抽象类不能实例化对象(不能通过抽象类创建一个抽象的对象)

接口:

就是定义一些规范,让子类按照这个规范去实现自己的功能。

目的:

要将自己写的程序模块加入到原来已经写好的程序中去。

要想使用抽象类,就必须使用一个类去继承抽象类,而且要想使用这个子类,也就是让子类可以创建对象,子类就必须不能再是抽象类,子类可以重写父类的方法(给抽象方法加上方法体)

抽象方法中的方法没有方法体,子类必须实现这个方法(父类没有具体的实现,但是子类必须有这个方法名)。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1