面向对象2

面向对象与面向过程的区别


1面向过程:就是将一份工作给一个人,让他自己去分成几个步骤去完成。
2面向对象:就是将一份工作交给许多人,每个人去完成一个小任务,最后将许多小任务汇总起来。


面向对象的基本概念:


类和对象:


类:举例==》人就是一个类,班级也可以说是一个类,类是有许多对象组成的一个集合。
通常,类一般包含两大方面的信息{1:属性;2:方法}

对象:人这个类中具体到哪一个人,这个具体的人就是一个对象。

//定义一个类
class renlei{
//类中有一些属性(就是变量)
var $name = "向兆泽";
var $sex = "男";
var $age = 18;
//类中有一些方法(就是函数)
function a1(){
echo "1234";
}
}

面向对象的语法:
1、定义类:在定义类的语法中只有下面的三种代码;
(1)、定义属性(变量);
(2)、定义方法(函数);
(3)、定义常量(类常量);
2、创建类的对象:
1、$对象名 = new 类名();
2、可变类名
$变量名1 = “类名”;
$对象名 = new 变量名1();
3对象名 = new self;
“self”只能在类的内部使用,它值得是这个类的本身
4、通过对象创建对象
$对象名1 = new 类名();
$对象名2 = new 对象名1;


5、使用对象(3个方法)
(1)使用属性
(2)使用方法
(3)使用常量

类中成员:(属性、方法、类常量)

在类中的属性一般分为一般属性和静态属性,同样方法也可分为一般方法和静态方法

一般属性:
属性就是放在一个类里面的变量
定义形式:
形式1:var $v1; //定义但不赋值
形式2:var $v1 = 2; //在定义的同时给他赋值,需要注意的是,给他赋的值只能是一
直接的值或者是一个常量,不能是一个变量,也不能是一个式子
形式3:public $v1;//跟形式一其实是一样的 var 可以用 public代替
形式4:public $v1 = 2;//同上
使用形式:
$对象->属性名; 在这里的属性名前面不加$符号。
一般方法:
定义 :跟定义函数几乎相同:function 方法名(里面可以放参数){


调用:$对象名->方法名(可以加参数);//方法的前面可以加修饰词,一般都用public,这样zhi公共的都可以使用


$this关键字:
$this是一个“伪对象”,它代表当前所属类的当前对象。


静态属性:
在定义属性时,在前面加上关键字“static”,此时这个属性就是一个静态属性。
形式:static $v1 = “属性值”;
静态属性只是属于类的,而不是属于对象的。

静态属性的调用:静态属性调用时要用双冒号“::”
形式:类::$静态属性名;
静态方法:
跟静态属性相同,在方法的前面加上关键字static这个方法就是一个静态方法
形式:类::静态方法名();

需要注意的是$this在静态方法中是不能使用的,在静态方法中也不能调用非静态的方法

self:代表当前类:
同样的在方法里输出 return new self;
在调用这个方法的时候,就能得到一个对象;这个类的对象


构造方法:
构造方法的方法名是固定的,只能是 __construct();
构造方法只能是一般方法,不能是静态方法
构造方法在实例化一个对象的的时候就已经存在,只是默认的不显示而已
该方法中使用$this来对属性赋值

析构方法:
在PHP文件执行完毕后销毁对象,默认不写;就是销毁对象,
用unset() 也可以销毁对象

原文地址:https://www.cnblogs.com/LQK157/p/9137879.html