1.类的属性和方法
A.类的属性:
a.类中声明变量的时候有两种情况,1.可以声明同时赋值 2.声明不赋值;
b.类中的属性(变量)如果在声明的时候不赋值的话,那么初始值为NULL;
c.属性必须是一个确定的值,不能够是表达式或者返回值;
B.类的方法
a.类中的函数称为方法,可以定义与类外同名的函数;
2.类的构造函数和析构函数
A.类的构造函数:
a.构造函数会在对象产生的时候系统自动调用;
b.在调用构造函数的时候可以带参数,也可以不带参数;
c.如果不带参数就必须给构造函数中的形参加上默认值!
B.类的析构函数:
a.可以显式(用户手动调用)删除对象(析构对象),也可以隐式(系统自动调用)析构对象;
b.如果没有显式的删除对象,该对象会在作用域结束时系统自动调用析构函数;
c.显式的删除对象就是说给对象赋值(任何值)都会被认定为该对象不需要了,可以析构;
d.如果显式的删除对象那么就会在该语句处调用对象的析构函数;
3.php中类的垃圾回收机制
a.对象传值默认为引用传值(即传址)
b.当多个变量同时指向一个对象的时候,不管你怎么销毁变量,只要还有一个变量指向那个对象,那么那个对象便还存在;当没有任何变量指向该对象的时候,便会触发对象的析构函数(析构对象);
4.类中this指针的绑定
a.当一个对象在调用它的方法的之前,会将this指针绑定到当前调用对象上;
b.如果不加this指针,那么系统就认为该变量为方法的内部局部变量,而不是类的属性;
5.类的封装
a.给外部一个接口(public类型),只有通过调用接口才可以对private、protected类型的变量或者函数进行操作(这个操作是对象的内部操作);
b.而这些操作对于外部是不需要知道,也不允许被知道的!
c.也就是说把private、protected类型的变量或者函数“封起来”,不允许外部直接操作这些属性和方法
6.类的权限修饰符
a.作用:用来说明属性和方法的权限特点
b.位置:写在属性和方法最前面
c:三个作用修饰符:1.public(公有)2.private(私有,管理的最严格)3.protected(保护);个人认为这几个权限修饰符的使用规则与C++类似.
d.利用{}法则来判断调用是否合法。({}法则就是根据类的大括号来判断);
7.权限控制的BUG
a.PHP在实现上,并不是以对象为单位来控制权限,而是以类为单位来控制权限;
b.类声明一侧,而对象可能会有很多,以类为单位,简单了判断模型。
c.在JAVA、C#、C++中也存在这种情况