php面向对象笔记Word文件下载.docx
《php面向对象笔记Word文件下载.docx》由会员分享,可在线阅读,更多相关《php面向对象笔记Word文件下载.docx(47页珍藏版)》请在冰豆网上搜索。
*自动加载
*aaabbbccc
*变量:
aaaBbbCcc
*函数:
aaaBbbCcc
*常量:
AAABBBCCC
*类名:
AaaBbbCcc
*一定要有意义
*实例化对象
*对象的使用
*对象在内存中的分配
*/
classPhone{
//成员属性
var$pinPai;
var$color;
var$batteryCapacity;
var$screenSize;
//成员方法
staticfunctioncall($number){
}
functionmessage(){
functionplayMusic(){
functionphoto(){
}
classPerson{
var$name="
zhangsan"
;
*通过类来实例化对象
*1.使用的是new新建一个对象,加上类名,就是创建那个类的对象
*$对象引用=new类名;
*2.只要有一个new关键字就是创建一个对象,创建一个对象就在内存中分配了一个空间
*只有对象才在内存有存储空间
*对象中的成员必须通过对象的引用来访问
*对象->
成员
成员属性=新值
*echo对象->
成员属性
成员方法
*类的声明
*类中成员属性
*类中成员方法
*对象的创建(对象实例化)
*对象中成员的访问形式
var$name;
var$age;
var$sex;
functionsay(){
functioneat(){
functionrun(){
$p1=newPerson;
$p2=newPerson;
$p3=newPerson;
$p1->
name="
zhasan"
echo$p1->
name;
$p2->
say();
/*
*1.对象中成员的访问(就是在一个对象的内部方法中,去访问本对象中的其它方法和成员属性)
*2.在对象中的方法中都默认有一个$this关键字,这个关键字代表调用这个方法的对象
*3.第一人称代词:
我
*构造方法,构造器
*1.是对象创建完成以后,“第一个”“自动调用”的方法
*2.构造方法的定义,方法名一个固定的,
*在PHP4中和类名相同的方法就是构造方法
*在PHP5中构造方法选择使用魔术方法__construct()所有类中声明构造方法都使用这个名称
*优点:
在改变类名时,构造方法不用改变
*作用:
就是为成员属性初使化;
*
*魔术方法:
*在类中写出了某个魔术方法,这个方法对象的功能就会添加上
*方法名称都固定的(都是系统给我们提供好),没有自己定义的,
*每一个魔术方法,都是在不同时刻为了完成某一功能自动调用的方法
*不同的魔术方法有不同调用时机
*都是以__开头的方法
*__construct();
*__destruct();
*__set();
*__get();
*__isset();
*__unset();
*__clone();
*__call();
*__sleep();
*__weakup();
*__toString()
*...
*__autoload();
*析构方法:
*1.当对象被释放之前最后一个“自动”调用的方法
*使用垃圾回收器(javaPHP)而C++手动的释放
*作用:
关闭一些资源,作一些清理的工作
*__destruct();
var$age;
var$sex;
function__construct($name="
"
$age=0,$sex="
男"
){
$this->
name=$name;
age=$age;
sex=$sex;
}
functionsay(){
echo"
我的名子:
{$this->
name},我的年龄:
age},我的性别:
sex}。
br>
eat();
functionrun(){
functioneat(){
function__destruct(){
echo$this->
name."
再见!
$p1=newPerson("
20,"
女"
);
$p2=newPerson("
lisi"
25);
$p3=newPerson("
wangwu"
$p1->
$p1=null;
$p2->
$p3->
*封装性:
面向对象的三大特性之一
*1.就是把对象的成员(属性,方法)结合成一个独立的相同单位,并尽可能隐藏对象的内部细节
*publicprotected
*private私有的,用这个关键字修饰的成员,只能在对象内部访问(只有用$this访问),不能在对象外部使用
*属性可以封装:
*只要一个变量,需要在多个方法使用,就将这个方法声明为成员属性,可以直接在这个对象中的所有方法中使用
*成员属性,就相当于这个对象中的全局变量
*成员属性都会在方法中使用,成员属性值的变化其实就是在改变方法的执行行为,也就是改变了对象的功能
*成员属性的值如果不正常,方法执行的功能也就不正常了
*450ma--650mA---5A
*3.8--4.2V---220v
不需要在对象外部改变或读取它的值
*1.封装
*再提供一个公有的方法(经过方法对象成员属性进行赋值和取值就可以控制)
*方法也可以封装:
*1.使用private修饰使用其只能在内部使用
*2.一个类中有100个方法,封装了95个(为另外的5个服务的方法),只有5个方法可以使用
*100成员属性,都让取值,值都不可以改值
*和封装有关的魔术方法:
*__set():
是直接设置成员属性值时,自动调用的方法
*__get():
是直接获取成员属性值时,自动调用的方法
*__isset();
*__unset();
private$name;
private$age;
private$sex;
functiongetPro($name){
return$this->
$name;
functionsetAge($age){
if($age>
100||$age<
0)
return;
functiongetAge(){
if($this->
age<
30)
return$this->
age;
elseif($this->
40)
age-5;
50)
age-10;
else
age-15;
left();
right()