0604-面向对象、类与对象、类、static、构造方法/析构方法

一.面向对象

1.面向过程:一个人分步骤完成某个事情

2.面向对象:某件事情拆分为多个任务,由每个对象独立完成,最后调用整合为一个完整的项目

二、类与对象

关系:对象依存于类。一个对象可以隶属于多个类。

对象一般为不可拆分的个体,但一个类也可以是一个对象。比如有47名同学的一个班级,如果把班级作为一个班级类中的一个对象,则这个班级不能包括47个个人。

三、类(成员:属性和方法)

1.    定义类:class--定义一个类

  var--类中的属性的修饰符

  function--定义类中的一个方法

 1 //定义一个类
 2 class human{
 3     var $name = '';
 4     var $age =  '';
 5     var $sex = '';
 6     var $todo = '';
 7     function showInfo(){
 8         echo '姓名:'.$this->name.'<br>年龄:'.$this->age.'<br>性别:'.$this->sex.'<br>做了什么:'.$this->todo;
 9     }
10 }

1.1类中的属性:

定义形式(var是public的别名,public正式):
  var  $v1 ;        //定义不赋值
  var  $v2 = 2;        //定义的同时赋值,值不能是变量,也不能是“计算表达式”
  public  $v1;
  public   $2 = 2;

使用形式:

$对象->属性名  //属性名前面没有$符号。

1.2类中的方法:

定义与之前的一样。

使用:对象名->方法名(参数)

方法前可以加修饰词:public,protected,priate,不写默认“public”

方法中的$this是一个“伪对象”,代表当前所属类的当前对象。

2.    创建一个对象(四种方法)

 1 //1.直接new
 2 $xiaohong = new renlei();
 3 $xiaohong->name = '小红';
 4 $xiaohong->age = 3;
 5 $xiaohong->sex = '男';
 6 $xiaohong->todo = '开炮';
 7 $xiaohong->showInfo();
 8 //2.可变类名
 9 $lei = 'renlei';
10 $xiaoming = new $lei();
11 $xiaoming->showInfo();
12 //3.new self:在类的方法内部 代表类本身
13 $xiaogang= new renlei();
14 $lisi=$xiaogang->cself();
15 $lisi->showInfo();
16 //4.通过对象创建对象
17 $xiaogang = new renlei();
18 $xiaogang->name = "小刚";
19 $zhangsan = new $xiaogang;
20 $xiaogang->showInfo();
21 $zhangsan->showInfo();

3.对象的传值(值传递和引用传递--&)

4.一个系统函数:get_class(对象)--获得某个对象的“所属类名”——结果只是一个类名字符串

四、关键字static

1.定义时,在属性/方法前加上static,即可成为静态属性/方法。

2.静态属性和方法隶属于类本省,是所有对象的“共有数据”。

3.使用:::$静态属性名  //双冒号,带$符号。

4.$this在静态方法中不能使用。(静态方法是类的,$this是对象的,有局限性,非静态方法也不可调用,同理)

五.构造方法/析构方法

特点:方法名固定,不定义也会自动调用

1.构造方法(__construct)创建对象时自动调用,例如:

 1 class human{
 2     var $name = '';
 3   function showInfo(){
 4         echo $this->aa;
 5   }
 6     //构造方法 方法名固定 默认存在 且每次都会调用
 7     function __construct($name){
 8         $this->name = $name;
 9     }
10 }
11 $person = new human('222');
12 $person->showInfo();

2.析构方法():销毁对象时自动调用。php代码执行结束会自动销毁对象,可用析构方法查看。

注意:析构方法不能调用,析构方法不能有形参。

手动销毁对象:unset($p1);

 

猜你喜欢

转载自www.cnblogs.com/flypea93/p/9136654.html