PHP面向对象基本概念 类与对象 静态属性 构造/析构方法

1.传统的面向过程和现代面向对象
  传统面向过程:是指把将要完成的工作分为若干个步骤一步一步的完成
  现代面向对象:是指将要完成的工作拆分为一个一个的对象的任务(功能)每个对象独自完成自己的任务
 可以理解为: 一个大扫除 面向过程就是一个人干完大扫除 面向对象就是 一个人扫地 一个人拖地
2.面向对象的基本概念
  三大特性:封装 继承 多态
  类与对象:
          张三是一个对象,李四是一个对象 他们都隶属于人这个类
         类:描述某一些具有共同特征的物体的概念
         对象:是指一个具体的物体,该物体隶属于某个类别
         通常,对象离不开类,没有类就没有对象  没有对象可以有类
             class Human{   //定义一个类 class是关键字
                    //类中有一些属性(就是变量)
                   var $name = '张三';
                   var $sex = '男';
                   var $age = '20';
                    //类中与一些方法(就是函数)
                     function show(){
                              echo '姓名:'.$this->name.';性别:'.$this->sex.';年龄:'.$this->age;
             }
                      const PI = 3.14  //类中有一些常亮(类常亮)    
       }  
    类中的属性:
       定义形式(var是public的别名):
         var $v1; //可以定义不赋值
         var $v2 = 2; //定义的同时赋值 值不能是变量和计算表达式
         public $v1;
         public $2 = 2;
       使用形式:
         $对象->属性名    //属性名前面没有$符号
    创建类的对象:
     //调用
     1.对象名 = new 类名(Human)();
     2.可变类名
        变量名($name)= "类"
        对象名($lisi) = new 变量名($name)();
     3.对象名 = new self;只能在类的内部使用 指的是本身
        function cself(){
           return new self
         }
        例如:$lisi = new Human();
                  $zhangsan =  $lisi->cself();
                  他俩是相等的
     4.对象名1 = new 类名() 对象名2 = new 对象名1;
    对象的传值:
       值传递:复制数据 相互独立
       引用传递: 复制的是关系 一个改变另一个也改变
       关键字 &;
   一般方法:
       定义是一样的  使用是
       使用也是   ->
       访问修饰符 不写就是public
       $this 关键字 是一个伪对象 代表当前所属类的当前对象
          对象不一样 显示的内容也是不一样的
  系统函数:
      获取某个对象的 类名  结果只是一个类名字符串
      对象名 = new 类名() get_class(对象名)的结果就是类名
   静态属性:
     关键字 static
     static  $v1 = 10;
     用法:类::属性名;
   静态方法:
     不能存在$this 不能存在类的东西
   构造方法:
      关键字 __construct();
      如果你不写 就是调用  function ____construct(){
}
      不能是静态方法
      使用$this来赋值
   析构方法:
     销毁对象时自动调用 php代码执行结束会自动销毁对象 可用析构方法查看
     不能调用  自己执行  不能有形参
     手动销毁unset($p1);

猜你喜欢

转载自www.cnblogs.com/xzz123-/p/9142510.html