[php学习笔记3]对象、方法

来源:互联网 发布:软件靠流量赚钱 编辑:程序博客网 时间:2024/05/22 16:04
创建对象方式:
class C1{
....
}
1.$o1=new C1();
2.$o2=new o1();    //通过一个对象new一个新的
3.$s1="C1";
 $o3=new $s1();   //可变类
4.$o4=new self();  //self表示“当前类本身”,他只能出现在一个类的方法中

类常量
定义形式:
class 类名{
const 常量名=常量值;
//不可以用define("名",值)来定义
}
使用形式:
通过范围解析符::来使用
对比:
常量的使用:
对象名::常量名
普通变量的使用:
对象名->普通变量名
静态变量的使用:
对象名::$静态变量名

实例方法和静态方法
调用
class C1{
public $p1=1;  //实例属性
static $p2=2;//静态属性
function showinfo1(){     //实例方法
echo"实例方法被调用!"
echo"p1的值为:".$this->p1;

}
static function showinfo2(){   //静态方法
echo"静态方法被调用!";
echo"p2的值为:".self::$p2;
//静态方法中不能用实例属性 
}
}
$o1= new C1();
$o1->showinfo1(); //使用对象调用实力方法
C1::showinfo2();  //使用类来调用静态方法

构造方法:
function __construct(){
}
析构方法:
function __destruct(){}    //析构方法不能带参数
public,protected,private
类内部/继承关系类内部/类外部

parent
调用:
parent::$名;
parent::方法();
重写:
子类覆盖的属性或方法的访问控制权限,不能低于父类的被覆盖的属性或方法
父类:public子类:只能是public
父类:protected子类:可以是protected和public
父类:private子类:不能覆盖!
注:虽然父类的私有属性不能被覆盖,但子类却可以定义自己的跟父类同名的属性
                                 而不能定义同名的方法!!
最终类和最终方法:
final目的是不让子类重写
原创粉丝点击