码迷,mamicode.com
首页 > 其他好文 > 详细

面向对象的静态属性

时间:2019-06-22 10:48:15      阅读:96      评论:0      收藏:0      [点我收藏+]

标签:访问   修饰符   day   col   person   否则   计算   入门   方式   

基本概念:

  静态属性是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量。

定义静态属性

  (1)   访问修饰符 static 静态属性名;

  (2)   static 访问修饰符 静态属性名;

:: 叫 范围解析符

在类的内部访问可以使用两种方式  self::$静态属性名  ,  类名::$静态属性名

在类的外部访问静态属性,静态属性需要是public ,否则也不能直接访问, 访问的形式是 类名::$属性名

快速入门案例:

/*
    创建一个类:唐僧队伍 类中包含了姓名、年龄、个人每天消耗的食物数量
    队伍不断的有成员加入 唐僧、孙悟空、猪八戒、沙僧
    $num表示队伍的人数 $food_sum表示队伍每天消耗的蛋糕数量
*/
class Person{
    public $name;
    public $age;
    public $food_num;
    //创建静态属性
    public static $num = 0;
    public static $food_sum = 0;
    public function __construct($name,$age,$food_num){
        $this -> name = $name;
        $this -> age = $age;
        $this -> food_num = $food_num;
    }
    public function num(){
        //内部访问静态属性
        self :: $num++; 
        self :: $food_sum += $this -> food_num; 
    }
}
$p1 = new Person(‘唐僧‘,24,3);
$p1 -> num();
$p2 = new Person(‘孙悟空‘,720,5);
$p2 -> num();
$p3 = new Person(‘猪八戒‘,360,9);
$p3 -> num();
$p4 = new Person(‘沙僧‘,180,30);
$p4 -> num();
//外部访问静态属性
echo ‘师徒一共‘ . Person::$num . ‘人‘ . ‘每天吃‘ .  Person::$food_sum . ‘块蛋糕‘;
//创建一个类来计算一共有1000块蛋糕每过一天蛋糕还剩多少
class Day{ public $day; public static $sum = 1000; public function sum(){ self::$sum -= Person:: $food_sum; } } $day1 = new Day(); $day1 -> day = ‘第一天‘; $day1 -> sum(); echo ‘<br>‘ . $day1 -> day . "蛋糕还剩下" . Day::$sum; $day2 = new Day(); $day2 -> day = ‘第二天‘; $day2 -> sum(); echo ‘<br>‘ . $day2 -> day . "蛋糕还剩下" . Day::$sum; 输出结果: 师徒一共4人每天吃47块蛋糕 第一天蛋糕还剩下953 第二天蛋糕还剩下906

 

面向对象的静态属性

标签:访问   修饰符   day   col   person   否则   计算   入门   方式   

原文地址:https://www.cnblogs.com/rickyctbur/p/11067844.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!