静态变量和静态方法

静态变量

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

思路:
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.静态方法不能操作非静态变量.

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

原文地址:https://www.cnblogs.com/aten/p/8424422.html

时间: 2024-10-11 10:29:48

静态变量和静态方法的相关文章

Java中静态变量与静态方法的继承

class A { static int a = 1; static int b = 2; public static void printA() { System.out.println(a); } public static void printB() { System.out.println(b); } } class B extends A { static int a = 3; static int b = 4; public static void printB() { // 如果B

JAVA的静态变量、静态方法、静态类

JAVA的静态变量.静态方法.静态类 静态变量和静态方法都属于静态对象,它与非静态对象的差别需要做个说明. (1)Java静态对象和非静态对象有什么区别? 比对如下: 静态对象                                                        非静态对象      拥有属性:                是类共同拥有的                                             是类各对象独立拥有的 内存分配:      

PHP 静态变量和静态方法

PHP静态变量静态变量(也叫类变量) 静态的变量的基本用法1.在类中定义静态变量形式:[访问修饰符] static $变量名;例;  //public static $nums=0;2.如何访问静态变量如果在类中访问  有两种方法    self::$静态变量名  ,  类名::$静态变量名如果在类外访问: 有一种方法    类名::$静态变量名 例程:提出一个问题:说,有一群小孩在玩堆雪人,不时有新的小孩加入,请问如何知道现在共有多少人在玩?请使用面向对象的思想,编写程序解决 [php] vi

转载:JAVA的静态变量、静态方法、静态类

静态变量和静态方法都属于静态对象,它与非静态对象的差别需要做个说明. (1)Java静态对象和非静态对象有什么区别? 比对如下: 静态对象                                                        非静态对象 拥有属性:                是类共同拥有的                                             是类各对象独立拥有的 内存分配:               内存空间上是固定的      

【转】JAVA的静态变量、静态方法、静态类

转自:http://blog.csdn.net/zhandoushi1982/article/details/8453522/ 静态变量和静态方法都属于静态对象,它与非静态对象的差别需要做个说明. (1)Java静态对象和非静态对象有什么区别? 比对如下: 静态对象                                                        非静态对象     拥有属性:                是类共同拥有的                       

Java 语言静态变量和静态方法继承问题(转)

首先,定义一个类A如下 class A { static int a = 1; static int b = 2; public static void printA() { System.out.println(a); } public static void printB() { System.out.println(b); } } class A {     static int a = 1;     static int b = 2;     public static void pri

Java中的静态变量、静态方法、静态代码块

转载自http://www.cnblogs.com/panjun-Donet/archive/2010/08/10/1796209.html (一)静态方法(1)在Java里,可以定义一个不需要创建对象的方法,这种方法就是静态方法.要实现这样的效果,只需要在类中定义的方法前加上static关键字.例如: public static int maximum(int n1,int n2) 使用类的静态方法时,注意:a在静态方法里只能直接调用同类中其他的静态成员(包括变量和方法),而不能直接访问类中的

&quot;静态方法里只能调用静态变量和静态方法&quot;详解

静态方法里可以调用静态方法和静态变量,同时也能调用非静态方法和非静态变量. public class Test { public Test() {}; public Test(int i) {this.n = i;} public static int m = 5; public int n = 10; public void fun1() {System.out.println("非静态方法fun1");} public static void fun2() {System.out.

java中静态变量与静态方法的继承(转)

总结: 1.静态变量与静态方法说继承并不确切,静态方法与变量是属于类的方法与变量.而子类也属于超类,比如说Manage extends Employee,则Manage也是一个Employee,所以子类能够调用属于超类的静态变量和方法.注意,子类调用的其实就是超类的静态方法和变量,而不是继承自超类的静态方法与变量.但是如果子类中有同名的静态方法与变量,这时候调用的就是子类本身的,因为子类的静态变量与静态方法会隐藏父类的静态方法和变量. 2.如果子类中没有定义同名的变量和方法,那么调用 "子类名.

.NET静态变量与静态方法并发的问题

我们知道,静态变量与静态方法都是在程序编译的时候就定义好了的,并且不会存在多个副本.所以对于静态变量来说,一旦修改了就会影响全局. 因此,静态变量是存在并发性问题的,所以当我们在操作静态变量的时候需要考虑到并发的问题      ,一般情况下,我们通过使用“lock”操作符,增加一个互斥锁就可以了,如下: lock(      obj      )//随便new 一个对象{//在这里面操作静态变量即可.} 而对于静态方法,它只是一些处理逻辑的代码而已,不管有多少个人在操作它,它本身都不会改变.因此