面向对象基础 之-定义类,声明,属性,成员方法,传值,构造与析构方法
更新:HHH   时间:2023-1-7


   面向对象与面向过程的定义: 

  1. 面向过程:面向过程是一种一过程为中心的编程思想。在面向过程中也可称为“面向记录”编程思想  通俗讲:在完成一件事情,完成一个功能由开始到结束,通过完成一个一个步骤再进行下一步骤,知道事件的完成,叫面向过程。

       面向对象: 面向对象是一种思想是一种以实物为中心的编程思想

  2,面向对象主要由两大块组成  : 类,对象

             类: 用来 定义好某些对象的模板  ,里面有对象的成员属性(属性由变量,或者常量组成),成员方法(普通成员方法,构造方法,析构方法)。

            对象: 对象是根据该模块所创造出来的具体物体。一个对象由那些属性,可以做那些事情 都由类的属性,方法决定。

3,面向对象的语法: 

         1,定义类: (类含属性(变量属性,成员属性,静态属性)方法(成员方法,静态方法,构造方法,析构方法))

            

       class Person 
       {
           $name="张三"   //变量属性
           const age =24;//常量属性
           static $sex ="女";
        }
        function __construct ($a,$b)
        {
        }
        function Study()
        {
        }
        function __destruct()
        {
        }

         2,创建对象: 

     $对象名1 ->nes Person(); //创建对象
     $cname = Person;
     $对象2->cname();//创建可变类对象
     $对象名3 =new self  //self 指代表类本身,只能在类的内部方法中使用

         3,对象使用: (对象的使用由类决定有什么使用什么) 主要有以下三种方式

                 3.1   使用类属性:  $Person1 -> name="李四”; 此处相当给属性赋值

                 3.2   使用类方法: $Person1->study();

                 3.3   获取属性值    $str = $Person1->name // 将类的属性值赋予$str

         4,对象的传值:

                    主要有两种传递方式:   、

                         值传递 :传递完之后,有了2份同样的数据,但两个变量“相互独立”没有关系

                      引用传递:传递的时候,拷贝的是引用关系。需要使用“&”才能实现引用传递,

                  传递完之后,数据仍然只有一份,但是两个变量共同指向该数据

  

                   值传递:

          class Person {
           var $v1 =10;
           }    
           $p1 = new Person();
           $p2 =$p1;  
           $p1->v1=20;
                     echo  $p1->v1;//输出20
                     echo  $p2->v1;//输出20
                     此处是将$p1的值传递给$p2,  因此在$p1的值改变,$p2的值也跟着改变

                引用传递:  $p3 = new Person();

                                   $p4 =&$p3;

                                   $p3->v1=100;

                                   echo  $p3; //输出100

                                   echo $p4; //输出100

                

               5,构造方法: 

                           

                              构造方式是类中一个特殊方法,其作用是在实例化一个对象的同时,给该对象的

                                 属性赋值,使对象创建完成后就具有本身的特有的数据(属性值)                                                                      

                              6.1  构造方法的名字是固定为: __construct();

                              6.2,该方法必须是普通方法,(不能静态方法)

                              6.3 通常该方法中使用$this这个关键字来对属性值进行赋值

                              6.4 当new 新对象的时候,就已经调用该构造方法

                              6.5 定义了构造方法,实例化该类时就调用该方法,且实例化的参数跟构造方法的

            

                                        class Person
                                          {
	                                        public $name = "abc";
	                                        public $age = "18";
	
	                                  function __construct($n,$a)
	                                  {
                                                $this->name= $n;	
                                                $this->age= $a;	
                                       	}
	                                          function intro($a,$b)
	                                {
                                                echo "大家好我叫 .$this->name .年龄.$this->age";
	                                }
                                        }
                                             $Person1=new Person('cba',20); //可以看作调用构造方法
                                             $Person1->intro();  //输出大家好我叫 cba年龄20

             6,析构方法:function __destruct(){.....}

                构造方法是“创建”对象的时候会自动调用。

                析构方法是“销毁”对象的时候会自动调用。

                      说明:

                 1,析构方法通常不太需要去定义。

                 2,析构方法不能调用。

                 3,析构方法不能有形参。


  

返回web开发教程...