静态变量和静态方法

Posted

tags:

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

静态变量

首先我们提出一个问题:
说,有一群小孩在玩堆雪人,不时有新的小孩加入,请问如何知道现在共有多少人在玩?请使用面向对象的思想,编写程序解决。

思路:
1.使用全局变量

<?php
    global $global_nums;//定义,完游戏的全局变量
    $global_nums=0;//赋值
    class Child{
        public $name;
        function __construct($name){
            $this->name=$name;
    }
        public function join_game(){    
            global $global_nums;//声明一下使用全局变量
            $global_nums+=1;    
            echo $this->name."加入堆雪人游戏"; 
        }
    }
    //创建三个小孩
    $child1=new Child("李逵");
    $child1->join_game();
    $child2=new Child("张飞");
    $child2->join_game();
    $child3=new Child("唐僧");
    $child3->join_game();
    //看看有多少人玩游戏
    echo "<br/> 有".$global_nums;
    ?>

 

2.使用静态变量

静态的变量的基本用法

1.在类中定义静态变量
 [访问修饰符] static $变量名;
2.如何访问静态变量
 如果在类中访问 有两种方法 self::$静态变量名 , 类名::$静态变量名
 如果在类外访问: 有一种方法 类名::$静态变量名

<?php

class Child{ public $name; public static $nums=0;//定义并初始化一个静态变量 $nums function __construct($name){ $this->name=$name; } public function join_game(){ self::$nums+=1;//self::$nums 使用静态变量 echo $this->name."加入堆雪人游戏"; } } //创建三个小孩 $child1=new Child("李逵"); $child1->join_game(); $child2=new Child("张飞"); $child2->join_game(); $child3=new Child("唐僧"); $child3->join_game(); //看看有多少人玩游戏 echo "<br/> 有这".Child::$nums;

静态方法

在我们编程中,我们往往使用静态方法去操作静态变量.

静态方法的特点
1.静态方法去操作静态变量
2.静态方法不能操作非静态变量.

这里请注意 : 普通的成员方法,
既可以操作非静态变量,
也可以操作静态变量

以上是关于静态变量和静态方法的主要内容,如果未能解决你的问题,请参考以下文章

静态变量代码块和静态方法的执行顺序

Java 核心基础之static静态代码块和静态方法

java中的静态变量,静态方法与静态代码块详解

静态代码块静态变量构造方法及构造块执行顺序

关于静态变量和非静态变量的区别

Java面向对象(OOP)--static修饰符(static变量static方法代码块和静态代码块创建和初始化对象的过程静态导入)