面向对象的静态属性

Posted rickyctbur

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象的静态属性相关的知识,希望对你有一定的参考价值。

基本概念:

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

定义静态属性

  (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

 

以上是关于面向对象的静态属性的主要内容,如果未能解决你的问题,请参考以下文章

Python面向对象之封装

面向对象的静态属性

PHP面向对象基本概念 类与对象 静态属性 构造/析构方法

Python之路-面向对象&继承和多态&类属性和实例属性&类方法和静态方法

Python之路系列:面向对象初级:静态属性静态方法类方法

面向对象