面向对象编程之static关键字
来源:互联网 发布:p2p线上平台软件 编辑:程序博客网 时间:2024/06/04 19:09
<?php
/*1.static关键字:用来修饰属性和方法,不能修饰类;
2.使用static修饰成员属性,该属性会存在内存的初始化静态段;
3.用static的目的是:可以被所有同属于同一个类中的所有对象共用的属性和方法,不用每个对象都重新赋值,浪费内存
4.第一次用到类名时,类在加载到内存时,就会将静态成员加载到内存的初始化静态段;
5.静态的成员一定要使用类去访问;
6.self可以在自己类的方法中代表自己的类名,通过self::静态属性的形式在方法中调用静态属性;类似于$this代表本对象一样;
7.静态成员一旦被加载,只有在脚本结束时才会被释放;
8.在静态方法中是不能访问非静态属性的,因为无法识别$this,根本就没创建对象就在访问类中的方法,所以就不存在对象,$this
也就无从代表;
9.静态属性不需要使用构造方法来赋值初始化;
10.只要是能在能使用静态的环境下就尽量使用静态,因为效率高,无须创建对象就可以直接访问;
*/
class person{
static $name="刘仁";
static $age=23;
static $sex="男";
static $country="中国";
static function say(){
echo "我的名字是".self::$name.",我的年纪是:".self::$age.",我的性别为:".self::$sex.",我所在的国家是:".self::$country."<br>";
}
function eat(){
}
function run(){
}
}
echo person::$country."<br>";
person::$country="USA";
echo person::say();
?>
/*1.static关键字:用来修饰属性和方法,不能修饰类;
2.使用static修饰成员属性,该属性会存在内存的初始化静态段;
3.用static的目的是:可以被所有同属于同一个类中的所有对象共用的属性和方法,不用每个对象都重新赋值,浪费内存
4.第一次用到类名时,类在加载到内存时,就会将静态成员加载到内存的初始化静态段;
5.静态的成员一定要使用类去访问;
6.self可以在自己类的方法中代表自己的类名,通过self::静态属性的形式在方法中调用静态属性;类似于$this代表本对象一样;
7.静态成员一旦被加载,只有在脚本结束时才会被释放;
8.在静态方法中是不能访问非静态属性的,因为无法识别$this,根本就没创建对象就在访问类中的方法,所以就不存在对象,$this
也就无从代表;
9.静态属性不需要使用构造方法来赋值初始化;
10.只要是能在能使用静态的环境下就尽量使用静态,因为效率高,无须创建对象就可以直接访问;
*/
class person{
static $name="刘仁";
static $age=23;
static $sex="男";
static $country="中国";
static function say(){
echo "我的名字是".self::$name.",我的年纪是:".self::$age.",我的性别为:".self::$sex.",我所在的国家是:".self::$country."<br>";
}
function eat(){
}
function run(){
}
}
echo person::$country."<br>";
person::$country="USA";
echo person::say();
?>
阅读全文
0 0
- 面向对象的编程之static关键字
- 面向对象编程之static关键字
- Java 面向对象之static关键字
- 面向对象 static关键字
- 面向对象-static关键字
- 面向对象之this关键字,static关键字 main
- 面向对象程序设计(static关键字)
- javaSE-面向对象-static关键字
- php面向对象static关键字
- 面向对象—static关键字
- static关键字-java面向对象
- 面向对象--static静态关键字
- java--面向对象static关键字
- JavaScript面向对象编程之this关键字
- J2SE-5 面向对象编程之关键字
- 面向对象(四)之static与final关键字详解
- PHP面向对象之析构方法,以及关键字static
- 12-10java面向对象之static关键字
- 关系并查集 处理关系的方法
- 2017.07.11【NOIP提高组】模拟赛B组
- JavaScript
- new与malloc的区别(1)
- 选择排序(选择排序和堆排序)
- 面向对象编程之static关键字
- C,C++,C#三者区别
- SRM549 Div1Medium MagicalHats
- wind IDE的中文输入问题
- Java之三大集合框架
- 与eclipse集成的管理zookeeper工具zookeeperBrowser
- linux 下 dd命令用法
- Linux下的常用替换命令
- Java并发之神修炼之路---创建多线程的三种方式