静态关键字static

 1 //静态关键字的使用static
 2 //类里面的普通成员是属于对象的,不是属于类的(调用的时候是用对象调用)
 3 //什么叫做静态的:类静态成员是属于类的,不是属于每个对象的
 4 //定义静态成员用static关键字修饰
 5 //静态(函数)方法里面无法调用普通成员
 6 //静态(函数)方法可以调用静态成员,使用self关键字来调用
 7 //self代表该类,$this代表该对象
 8 
 9 class Person      
10 {
11     public static $nation;   //静态成员变量
12     public $name;
13     public $sex;
14     private $age;
15     
16     function __construct($name="",$sex="男",$age=12)  //构造函数
17     {
18         $this->name=$name;
19         $this->sex=$sex;
20         $this->age=$age;
21     }
22     
23     static function jump()  //静态方法不能调用普通成员,只能调用静态成,使用self::
24     {
25         echo "民族:".self::$nation;   
26     }
27     
28     function say()      //普通方法(函数)也能调用静态成员,使用self::$属性名
29     {
30         echo "民族:".self::$nation.";姓名:".$this->name.";年龄:".$this->age;
31     }    
32 }
33 
34 $p=new Person("孔二","男",30);
35 
36 Person::$nation="汉族";   //类外部调用静态成员与函数  类名::$属性名
37 Person::jump();                                //类名::静态方法名()
38 echo "<br>";
39 $p->say();
40 var_dump($p);
41 
42 
43 class China extends Person   //编写一个子累,关键字:extends
44 {
45     public static $date;
46     static function run()
47     {
48         echo "民族:".self::$nation.";日期:".self::$date;
49     }
50     function say()       //子类对父类方法的重写
51     {
52         parent::jump();
53         echo $this->name."说汉语";
54     }
55 }
56 
57 $c=new China("张小五","女",36);
58 China::$date="2016-4-29";
59 China::run();
60 echo "<br>";
61 $c->say();
62 var_dump($c);

 

posted @ 2016-04-29 16:51  坏小子1993  阅读(136)  评论(0编辑  收藏  举报