PHP面向对象之析构方法,以及关键字static
2014-09-10 00:00
453 查看
1析构方法会自动调用
2析构方法主要用于销毁资源
3析构方法调用顺序是先创建的对象后销毁
析构方法在什么时候调用:
①当程序(进程)结束退出时
②当一个对象成为了垃圾对象的时候,该改对象的析构方法也会被调用
③所谓的垃圾对象是指一个对象已经脱离了应用。
④一旦成为了垃圾对象,该对象所占有的资源就会立马被回收。
类的析构方法:
①php5加入析构方法:function __destruct()
②析构方法没有返回值
③主要作用是为了释放资源,并不是销毁对象本身
④销毁对象钱,系统会自动调用析构方法(销毁对象发生在调用析构函数之前,由系统自己去执行销毁)
⑤一个类最多只有一个析构方法。
全局变量的定义和赋值要分开
静态变量定义方法:public static $dfd;
$dfd="";
访问静态变量的基本方式:①在类外部 类名::$静态变量名
②在类北部 类名::$静态变量名 或者 类名::$静态变量名
静态变量并不依赖于对象的创建与否。
在实际编程过程中,我们往往需要使用静态方法去操作静态变量,但是不能操作非静态属性
静态方法的特点
1 静态方法去操作静态变量
2静态方法不能操作非静态变量
注意事项:普通的成员方法既可以操作静态变量,也可以操作非静态变量
成员方法里面可以调用其他成员方法 但是需要使用$this来引用。
final关键字
1. 如果我们希望某个类不被其它的类来继承(可能因为安全考虑...), 可以使用final
<?php
final class A{
}
class B extends A{
&nb
3ff0
sp; }
echo "ok";
?>
2. 如果我们希望某个方法,比如计算个人所得税的方法,不能子类改写,可以使用fianl 来修饰方法
class A{
final public function getRate($salary){
return $salary*0.08;
}
}
class B extends A{
//不能去覆盖父类的getRate方法.
/*public function getRate($sal){
return $sal*0.01;
}*/
}
$b=new B();
echo $b->getRate(100);
3. final关键字不能去修饰属性.
const 关键字的讲解
//当你有一个属性,不希望被修改,则考虑使用const 做成常量
基本用法是
class A{
const 常量名=赋初值;
}
interface 接口名{
const 常量名=赋初值;
}
常量是public
使用 类名::常量名; 接口名::常量
<?php
class A{
//常量在定义的时候,必须给初值.
//const 关键字前面不要带修饰符号.
const TAX_RATE=0.08;
public function payTax($val){
//常量不能修改.
//A::TAX_RATE=0.01;
//return $val*self::TAX_RATE; 【ok】
return $val*A::TAX_RATE; //【ok】
}
}
$a=new A();
echo $a->payTax(200);
?>
1. 常量在定义的时候需要赋初值
2. 常量不能修改.
3. 常量名不能有 $, 一般是大写, 默认是public
4. 常量在类的内部使用 self::常量的名称 类名::常量的名称
在类的外部使用 类名::常量的名称.
2析构方法主要用于销毁资源
3析构方法调用顺序是先创建的对象后销毁
析构方法在什么时候调用:
①当程序(进程)结束退出时
②当一个对象成为了垃圾对象的时候,该改对象的析构方法也会被调用
③所谓的垃圾对象是指一个对象已经脱离了应用。
④一旦成为了垃圾对象,该对象所占有的资源就会立马被回收。
类的析构方法:
①php5加入析构方法:function __destruct()
②析构方法没有返回值
③主要作用是为了释放资源,并不是销毁对象本身
④销毁对象钱,系统会自动调用析构方法(销毁对象发生在调用析构函数之前,由系统自己去执行销毁)
⑤一个类最多只有一个析构方法。
全局变量的定义和赋值要分开
静态变量定义方法:public static $dfd;
$dfd="";
访问静态变量的基本方式:①在类外部 类名::$静态变量名
②在类北部 类名::$静态变量名 或者 类名::$静态变量名
静态变量并不依赖于对象的创建与否。
在实际编程过程中,我们往往需要使用静态方法去操作静态变量,但是不能操作非静态属性
静态方法的特点
1 静态方法去操作静态变量
2静态方法不能操作非静态变量
注意事项:普通的成员方法既可以操作静态变量,也可以操作非静态变量
成员方法里面可以调用其他成员方法 但是需要使用$this来引用。
final关键字
1. 如果我们希望某个类不被其它的类来继承(可能因为安全考虑...), 可以使用final
<?php
final class A{
}
class B extends A{
&nb
3ff0
sp; }
echo "ok";
?>
2. 如果我们希望某个方法,比如计算个人所得税的方法,不能子类改写,可以使用fianl 来修饰方法
class A{
final public function getRate($salary){
return $salary*0.08;
}
}
class B extends A{
//不能去覆盖父类的getRate方法.
/*public function getRate($sal){
return $sal*0.01;
}*/
}
$b=new B();
echo $b->getRate(100);
3. final关键字不能去修饰属性.
const 关键字的讲解
//当你有一个属性,不希望被修改,则考虑使用const 做成常量
基本用法是
class A{
const 常量名=赋初值;
}
interface 接口名{
const 常量名=赋初值;
}
常量是public
使用 类名::常量名; 接口名::常量
<?php
class A{
//常量在定义的时候,必须给初值.
//const 关键字前面不要带修饰符号.
const TAX_RATE=0.08;
public function payTax($val){
//常量不能修改.
//A::TAX_RATE=0.01;
//return $val*self::TAX_RATE; 【ok】
return $val*A::TAX_RATE; //【ok】
}
}
$a=new A();
echo $a->payTax(200);
?>
1. 常量在定义的时候需要赋初值
2. 常量不能修改.
3. 常量名不能有 $, 一般是大写, 默认是public
4. 常量在类的内部使用 self::常量的名称 类名::常量的名称
在类的外部使用 类名::常量的名称.
相关文章推荐
- PHP面向对象之析构方法,以及关键字static
- 黑马程序员_Java基础_面向对象(继承、子父类变量和函数以及构造函数特点、final关键字、抽象类、模版方法模式、接口)
- PHP 类的静态成员属性与静态方法 static 关键字
- PHP中static关键字以及与self关键字的区别
- php学习笔记 面向对象的构造与析构方法
- PHP面向对象:延迟静态绑定(static关键字)
- PHP里边用Static关键字来定义静态属性和方法
- 黑马程序员——面向对象——构造方法与static关键字
- 黑马程序员——高新技术---Java基础语法—面向对象_构造方法,static 关键字
- php面向对象(OOP)—构造方法与析构方法
- php (十二) 面向对象 构造方法与析构方法
- php面向对象类中的$this,static,final,const,self及双冒号 :: 这几个关键字使用方法。
- 面向对象的运用,及局部变量成员变量以及static关键字的运用
- php面向对象之final static const关键字的使用
- php学习笔记------[面向对象的构造与析构方法]
- php的魔术方法__get(),__set(),__call(),__callStatic()以及static延迟静态绑定
- PHP面向对象(OOP)编程完全教程:8.构造方法__construct()与析构方法__destruct()
- PHP面向对象的构造方法与析构方法
- php面向对象的static关键字
- PHP面向对象(OOP):.static和const关键字的使用(self::)