• php课程---面向对象



    面向对象:
    一:定义类

    class Dog
    {
        var $name;
        var $age;
        var $pinzhong;
            
        function Jiao()
        {
            echo "{$this->name}在叫";
        }
    }

    二:实例化对象
        $dog = new Dog();
        调用对象的成员:
        $dog->name = "旺财";
            调用成员方法:
        $dog->Jiao();

    三、$this关键字(放在类里面就代表这个类实例化出来的一个对象)
    $this->$name;this代表该对象,如果要在成员方法中调用成员变量,一定要使用$this找出该成员变量。
      完整代码:

     class Dog
       {
        var $name;
        var $age;
        var $pinzhong;
        
        function Jiao()
        {
           echo "{$this->name}在叫";      //this代表的是当前这个对象
        }
       }
        
        $dog = new Dog();
        
        $dog->name = "旺财";
        $dog->age = 10;
        $dog->pinzhong = "哈士奇";
        
        $dog->Jiao()  //调用成员方法


    四、构造函数:(构造函数是对类进行初始化的,php里面没有函数的重载)
    1.执行时间特殊
    2.写法特殊
       代码如下:

    class Dog
       {
        var $name;   //写访问修饰符时,var就不用写了
        var $age;
        var $pinzhong;
        
        function __construct($n,$a,$p)   //构造函数的写法,注意是两个下划线相连,前面必须空格
        {
               $this->name = $n;
            $this->age = $a;
            $this->pinzhong = $p;
        }
        function Jiao()
        {
           echo "{$this->name}在叫";      //this代表的是当前这个对象
        }
       }
        
        $dog = new Dog("旺财",10,"金毛");
        $dog->Jiao()  //调用成员方法


    五、析构函数(不能有任何参数)

    function __destruct()
       {
           echo "拜拜";
       }

    六、封装:
    将类里面的成员变量加一个private修饰符变成私有的,目的是为了保护类里面的成员不被外界随意访问,从而确保类的安全性。如果将变量设置为私有,如何去访问:
        1.自己写函数get函数set函数,然后来对变量赋值和取值
        2.用系统自带的__get()函数和__set()函数来实现类里面的变量赋值取值

         

      function __set($name,$value)
            {
                $this->$name = $value;
            }
        function __get($name)
            {
                return $this->$name;
            }


    完整代码:
     

     class Dog
       {
        private $name;   //写访问修饰符时,var就不用写了
        private $age;
        private $pinzhong;
        
        function __set($name,$value)
        {
            $this->$name = $value;
        }
         function __get($age)
        {
            return $this->$age;
        }
        function __construct($n,$a,$p)  
        {
               $this->name = $n;
            $this->age = $a;
            $this->pinzhong = $p;
        }
        function Jiao()
        {
           echo "{$this->name}在叫,它{$this->age}岁了";    
        }
        function __destruct()
       {
           echo "拜拜";
       }
       }
        
        $dog = new Dog("旺财",10,"金毛");
        $dog->name = "小强";
        $dog->age = 3;
        echo $dog->age;
        
        
        $dog->Jiao()  //调用成员方法


    七:继承
        继承一般是单继承:一个儿子只能有一个父亲
        子类可以继承父类的所有成员
            
            class HashiQi extends Dog  //dog是父类 HashiQi是子类
        {
            
        }

        子类可以对父类的成员方法进行重写:(函数名一样),如果要在子类方法中调用父类的方法,用parent::Jiao();
      

     function Jiao()
            {
                parent::Jiao();  //parent代表父类  ::代表调用方法,用类名调用
                echo "hello";
            }


    完整代码:
     

     class Dog
       {
        private $name;   //写访问修饰符时,var就不用写了
        private $age;
        private $pinzhong;
        
        function __set($name,$value)
        {
            $this->$name = $value;
        }
         function __get($age)
        {
            return $this->$age;
        }
        function __construct($n,$a,$p)  
        {
               $this->name = $n;
            $this->age = $a;
            $this->pinzhong = $p;
        }
        function Jiao()
        {
           echo "{$this->name}在叫,它{$this->age}岁了";    
        }
        function __destruct()
       {
           echo "拜拜";
       }
       }
        class HashiQi extends Dog  //dog是父类 HashiQi是子类
        {
            function Jiao()
            {
                parent::Jiao();  //parent代表父类  ::代表调用方法,用类名调用
                echo "hello";
            }
        }
        $dog = new HashiQi("旺财",10,"金毛");
        $dog->name = "小强";
        $dog->age = 3;
        echo $dog->age;
        
        
        $dog->Jiao()  //调用成员方法



        final关键字可以定义该类为最终类,不可被继承
        
        静态:
        关键字:static ,如果成员声明了为静态的,那么该成员是属于该类的,不是属于对象的
        如何调用静态的成员:
        HaShiQi::$height = 10;
        HaShiQi::Gao();
        用类名加双冒号调用类的静态成员

  • 相关阅读:
    Hadoop学习笔记(九)HDFS架构分析
    Hadoop学习笔记(九)HDFS架构分析
    Hadoop学习笔记(八)MapReduce深入分析
    Hadoop学习笔记(八)MapReduce深入分析
    Hadoop学习笔记(七)
    Hadoop学习笔记(七)
    Hadoop学习笔记(六)启动Shell分析
    Hadoop学习笔记(六)启动Shell分析
    「2018-11-05模拟赛」T5 传送机 解题报告
    NOIP 2018 普及组 解题报告
  • 原文地址:https://www.cnblogs.com/0927wyj/p/5157239.html
Copyright © 2020-2023  润新知