OOP基础知识

1 面向过程&面向对象

    1、专注于解决一个问题的过程。面向过程的最大特点,是由一个一个的函数去解决处理这个问题的一系列过程。
    2、专注于由那个对象来处理一个问题。面向对象的最大特点,是有一个个具有属性和功能的类,从类中拿到对象,进而处理问题。

2 面向对象

1、什么是类?
      具有相同属性(特征)和方法(行为)的一系列个体的集合,类是一个抽象的概念
 2、什么事对象?
      从类中,拿到的具有具体属性值的个体,称为对象。对象是一个具体的个体
  3、类与对象的关系?
       类是对象的抽象化!对象是类的具体化!
       类仅仅表明这类对象有哪些属性,但是不能具有具体的值,所以类是抽象的
       而对象,是将类的所有属性赋值后,产生的具体个体,所有对象是具体的

3 类的声明与实例化

1、如何声明一个类:
       class 类名{
           访问修饰符 $属性[=默认值];
           [访问修饰符 ]function 方法(){}
       }
   2、声明一个类的注意事项:
       ①类名之内有数字字母下划线组成,开头不能使数字,必须符合大驼峰法则
       ②类名必须使用class修饰,类名后面一定不能有();
       ③属性必须要带访问修饰符,方法可以不带访问修饰符;
   3、实例化对象及对象属性方法的调用?
       $对象名 = new 类名(); //()可以不加
    
       类外部调用属性和方法
       $对象名 -> 属性名; //使用->调用属性时,属性名不能带$
    
       类内部调用属性和方法
       $this -> 属性名;

4 构造函数

1、什么是构造函数?
       构造函数是类中的一个特殊函数,当我们使用new关键字实例化对象时,相当于调用了类的构造函数;
   2、构造函数有什么作用?
       实例化对象时,自动调用,用于给对象的属性赋初值!
   3、构造函数的写法?
       ①构造函数名,必须与类同名
       [public ]function Person($name){
           $this -> name = $name;
       }
       ②使用魔术方法__construct
       [public ]function __construct($name){
           $this -> name = $name;
       }
   4、构造函数注意事项:
       ①第一种写法,构造函数名必须与类同名!!!
       ②如果一个类没有手写构造函数,则系统默认会有一个空参数构造,因此可以使用new Person();
          如果我们写了带参数的构造函数,则将不会再有空参构造,也就是不能直接使用new Person(); Person后面的()中的参数列表,必须符合
   构造函数的要求!!
       ③如果两种结构函数同时存在,将使用__construct。
   5、析构函数:__destruct():
       ①析构函数在对象被销毁释放之前自动调用!
       ②析构函数不能带有参数
       ③析构函数常用于对象使用完以后,释放资源、关闭资源等
   6、魔术方法:
       PHP中,给我们提供了一系列的__开头的函数,这些函数无需自己手动调用,会在合适的时机自动调用,这类函数称为魔术函数。
       例如:function __construct(){} 在类new一个对象时自动使用
                  function __destruct(){} 在对象被销毁时自动调用
     
       我们要求除了魔术方法外,自定义的函数与方法不能使用__开头
        
    最后,一般对于功能比较复杂的类,我们会单独的写到一个类的文件中。
    类文件的命名,统一小写,使用“类名(小写).class.php”的方式命名。
    在其他文件中使用这个类 时,可以用include导入这个.class.php文件。
   

posted on 2017-07-17 07:57  c-c-c  阅读(152)  评论(0编辑  收藏  举报