zoukankan      html  css  js  c++  java
  • static+类的三大特性——继承

    <?php
    class Ren
    {   const p=3.1415926;    //将某些类里边常用的东西定义为常量
        public static $class;//static 关键字是定义静态成员
        public $name;
        private $sex;
        private $age;
    
        function __construct($s)
        {
            $this->sex = $s;
        }
        public function Say()
        {
            echo "hello";
            echo self::$class;//普通方法里边可以调用静态成员
            echo self::p+3;
            
        }
    const a=1;
        
        function SetAge($a) //给age赋值的函数
        {
            if($a>10 && $a<50)
            {
                $this->age = $a;
            }
        }
        function GetAge() //取age的值
        {
            return $this->age;
        }
        
        function __set($name,$value) //对类里面的私有成员进行赋值的魔术方法
        {
            if($name == "age")
            {
                if($value>20 && $value<50)
                {
                    $this->$name = $value;
                }
            }
            else
            {
                $this->$name = $value;
            }
        }
        
        function __get($name) //对类里面的私有成员进行取值的魔术方法
        {
            return $this->$name;
        }
        static function Test()
        {   echo self::$class; //调用自身类里面的静态成员
            echo "静态方法";
            
        }
    }
    $p=new Ren("男");
    Ren::$class="0305";//访问静态成员用::
    //echo Ren::$class;
    //Ren::Test();
    echo Ren::p+4;//php5.3以上的版本在类外边也可以用const;
    php中定义常量是define($name,$value),define()是方法;
    const只是用来定义常量,所以运行起来比define()要快
    $p->Say();//调用say(),显示结果为:hello03056.1415926 echo Ren::a; //继承 如果要继承,肯定有子类出现 //继承概念:如果一个类有子类,那么该子类会继承父类的一切东西(私有成员访问不到) //在定义子类时需要加一个关键字:extends //特点:单继承,一个子类只能有一个父类 //如果父类中有构造函数,子类在实例化的时候要按照父类构造函数的标准来实例化 //子类对父类方法的重写:在子类中写一个同样的方法,覆盖父类的方法 //final:用来修饰类,写在类前边,代表该类是一个最终类,该类无法继承 class Test extends Ren { public $birthday; function Run() { echo "run"; } function Say() { parent::Say();//调用父类的Say()方法,parent()只能在子类中使用 echo "Test Say"; } } $t=new Test("男"); $t->name="simon"; echo $t->name."<br />"; $t->Say(); var_dump($t); $t->Run(); //静态成员 //类里面普通成员是属于对象的,不是属于类的(调用的时候是用对象来调用的) //什么叫做静态的:类静态的成员是属于类的,不是属于每个对象的 //定义静态成员用static关键字修饰 //静态方法里边不能调用普通成员,可以调用静态成员 //静态方法可以调用静态成员,使用self关键字来调用
    //普通方法可以调用静态成员 //self代表该类,$this代表该对象
    ?>
  • 相关阅读:
    10003 Cutting Sticks(区间dp)
    Cocos2d-x init() 和 onEnter() 区别
    HDU1181【有向图的传递闭包】
    空间参考系统与WKT解析
    面试经典-分金条
    uvalive 3971
    lua学习:使用Lua处理游戏数据
    面试经典--两个房间 每间房间三盏灯
    浙江大学PAT上机题解析之2-11. 两个有序链表序列的合并
    顺序队列之C++实现
  • 原文地址:https://www.cnblogs.com/nannan-0305/p/5443014.html
Copyright © 2011-2022 走看看