DAY20 - 静态方法与封装

6.1 看一个开发的需求

6.2 思路(使用现有的技术解决)

  •  思路: 定义一个全局的变量 $total_num, 当有一个小朋友加入游戏时,我们就加1, 当我们需要查看有多少小朋友玩时,直接输出.

 全局变量:从程序创建开始,生命周期,到程序执行结束,一直可以使用的变量,成为全局变量。

 

 

6.3 对上面代码的进行分析和优化

  •  分析: 虽然可以解决问题,但是不是以面向对象的方式来解决,因此我们需要优化
  •  解决方式: 使用静态变量来完成:静态变量是属于所有对象, 因此可以被所有的对象共享.
  •  代码解决:

  •  内存的分析图

 

 

6.4 静态变量的其它说明

  •  基本概念的再说明

静态属性是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量。这个从前面的图也可看出来.

  •  定义静态属性

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

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

说明上面两种方式是等价的.

 

6.5 如何访问静态属性

  •  在类的内部访问

可以使用两种方式  self::$静态属性名  ,  类名::$静态属性名:: 叫 范围解析符.

举例:

 

  •  在类的外部访问

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

 

  •  $thisself的区别

 

6.6 静态属性的使用注意事项

 

6.7 课后练习题

 

 

 

 

 

 

 

 

1.1 基本的介绍

当程序员需要对静态属性进行操作时,可以定义静态方法来处理, 静态方法是专门用于操作静态属性.

 

 

 

posted @ 2017-02-06 21:28  千机楼  阅读(211)  评论(0编辑  收藏  举报