• 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文件。
       

  • 相关阅读:
    hdu 6214 : Smallest Minimum Cut 【网络流】
    hdu 6205: card card card【输入挂】
    UVa 10054 : The Necklace 【欧拉回路】
    hdu 6127 : Hard challenge (2017 多校第七场 1008)(计算几何)
    hdu 6143: Killer Names (2017 多校第八场 1011)
    hdu 6134: Battlestation Operational (2017 多校第八场 1002)【莫比乌斯】
    hdu 4992 Primitive Roots 【求原根模板】
    poj 1284 : Primitive Roots
    codevs 2804 最大最小数质因数
    codevs 2370 小机房的树
  • 原文地址:https://www.cnblogs.com/c-hl/p/7192656.html
Copyright © 2020-2023  润新知