美文网首页面试复习
php基础知识回顾-2

php基础知识回顾-2

作者: 云三木 | 来源:发表于2020-05-11 14:20 被阅读0次

    1.面向对象

    面向对象的组成
        类  : 定义了一件事物的抽象特点。类的定义包含了数据的形式以及对数据的操作。
        对象: 是类的实例。
    
        类 就是 对象的抽象化,对象 就是 类的实例化
    
    类的格式
    class 类名
    {
        //修饰符 public、protected、private
        修饰符 属性  (我有什么)
        方法  (我会什么,  函数  功能) 
    }
    
    属性格式:
        修饰符     属性名
        修饰符     属性名 = 值
    
    方法格式:
        修饰符 function 方法名( 参数1, 参数2, ...){
            方法体
        }
    
    对象 (如何使用类)
        $对象名 = new 类名
        $对象名 = new 类名()
    
    在类外使用属性
        $对象名->属性名    (属性名不要加$)
    
    在类外使用方法
        $对象名->方法名()   (方法名后面的小括号不要丢掉)
    
    如何控制内部与外部之间的联系?    修饰符
                                   类外    本类     继承类
    public      公共的 (国名儿子)    √       √        √
    private     私有的 (私生子)      x       √        x
    protected   受保护的(亲儿子)     x       √        √
    
    修饰符 优先级
        继承重写时, 修饰符要么保持等级, 要么降低等级.
        private > protected > public 
    ======================================================
    例:
    
    class cc
    {
        // 属性
        public $name = '哈奇士';
        public $age = 18;
            static $a = 11;
        // 方法
        public function skill1()
        {
            echo '沙发'.self::$a;
            retrun $this; // 通过伪对象 $this调用本类中的属性和方法
        }
        public function skill2()
        {
            echo '衣柜';
        }
    }
    $a = new cc;
    // var_dump($a);
    echo $a->name.'<br>';
    $x = 'name';
    echo $a->$x;
    echo '<hr>';
    $d = $a->skill1();
    // var_dump($d);
    $a->skill2();
    

    2.对象特点

    面向对象主要有三大特性:封装、继承、多态
    
    面向对象特性: 封装性、继承性、多态性。
      a). 封装性
        高内聚, 低耦合
    
      b). 继承性
        class 儿子 extends 老子{}
        * 可以继承属性/ 方法
        * 可以重写属性/ 方法3
        * 支持单继承, 不支持多继承
        * 支持连续继承 
      c). 多态性
        PHP不支持重载实现多态,(重载:当子类跟父类有个相同的方法时,子类的方法会覆盖父类的方法。)但是PHP可以变向的实现多态效果。
            Ⅰ. 继承
            Ⅱ. 重写
            Ⅲ.父类引用指向子类对象
        多态的优点
            1. 消除类型之间的耦合关系
            2. 可替换性
            3. 可扩充性
            4. 接口性
            5. 灵活性
            6. 简化性
    

    3.其他

    1. 常量
        格式: const 常量名 = 常量值
        使用: 类名::常量名
    
        * 不属于对象, 属于类, 不需要实例化
        * 不需要修饰符
        * 不能重复
        * 可以继承, 可以重写, 继承后, 可以重写一次
        * 常量名 区分大小写, 推荐大写
    
    2. 静态
        格式:
            修饰符 static 属性名/方法名
            static 修饰符 属性名/方法名
    
        使用:
            类内: self::属性名/方法名()
            类外: 类名::属性名/方法名()
    
        * 静态属于类, 不属于对象
        * 静态可以定义属性 和 方法
        * 在静态方法内, 只能访问静态属性/方法
        * 静态属性/方法 可以继承
    
    3. 最终类 final 
        格式:
            final class 类名
            final 修饰符 function 方法名
    
        * final可以定义类/ 方法, 不能定义属性
        * final类, 不能被继承
        * final方法, 不能被重写
        * final用户类的结构
    
    4. instanceof
        格式: 对象名 instanceof 对象名
        格式: 对象名 instanceof 类名
    
        * 判断 对象是否属于对象名
        * 判断 对象是否从类名 实例化过来的
    

    相关文章

      网友评论

        本文标题:php基础知识回顾-2

        本文链接:https://www.haomeiwen.com/subject/msoynctx.html