1.php中类定义和java中的类定义比较
ex.class Person{ class Person{
private $name; private String name;
private static $staticVariable =0; private static int staticVariable=0;
public function setName($name){ public void setName(String name){
$this->name = $name; //注意格式 this.name = name;
} }
public static void say{ public static void say{
//这个时候不要用$this
print self::$staticVariable; System.out.println(staticVariable);
} }
} }
$p = new Person(); Person p = new Person();
$p->setName("John"); p.setName("John");
Person::$staticVariable++; Person.staticVariable++;//p.staticVariable++;也是对的
Person::say(); Person.say(); //p.say();也是对的
静态变量和静态方法一般认为是属于类级别的,即是所有该类变量所共享的,
所以一般用class来调用方法或属性,而不是用对象.
比较: php中的$this和java中的this都表示对当前对象的引用.
2.parent::指向父类,一般用来访问父类的构造函数. ex.parent::_construct();
self::指向自身类,用来访问静态成员(变量或者方法)
3.php和java一样也有 instanceof
4.php 中的abstract,interface,implements,extends,final等用法和表达含义于java一致
php中也有public,protected,private关键字
public : 可以在任何作用域访问
protected: 从类和类的继承者可以访问(java中为包空间的所有类可以访问)
private: 自身类才能访问
5.php中的_toString()和java中的toString()作用一致
6.php中的构造函数统一定义为
function _construct() {}
php中也有析构函数统一定义为
function _desctruct(){}
7.php中一个类只能继承另一个类,但可以实现多个接口,一个接口可以继承多个多个接口(这些是和Java相同的)
ex.interface I1 extends I2,I3,....{
}
该接口与继承的接口是不能冲突的(不能重复定义方法或者常量)
php学习笔记之OO篇
最新推荐文章于 2024-10-04 10:53:49 发布