PHP札记之OOP

WBOY
WBOYOriginal
2016-06-13 10:49:35772Durchsuche

PHP笔记之OOP
   
├对象访问自身的属性和方法用“->”来进行访问,访问属性时不需要加“$”;
├类里面使用this关键字时需呀在this前加“$” $this->name = "firstep";
├类的构造函数 __construct() 析构函数 __destruct()
├访问修饰符 public protected(本类、子类、父类可访问) private
├封装相关函数(get\set)  __set($pn, $pv)  __get($arg)  私有属性进行修改或访问需要实现这两个方法
├继承使用关键字extends,子类访问父类资源“父类::父类内部成员”
├抽象(abstract), 拥有抽象方法的类一定是抽象类,抽象类一定有抽象方法,抽象方法定义时不能有实现,抽象方法前必须加abstract;
├抽象类的子类必须重载抽象类的所有抽象方法
├关键字final,当定义类时该类不能被继承,当用来定义方法则该方法不能被重载
├关键字self:用于访问类中资源,与this类型,但self不用实例化即可访问该类的内部成员,一般用于访问类中的静态成员、常量(self::类内部成员)
├静态成员的访问,类名::静态成员,和c++类似
├关键字const:只能用于定义属性成员
├接口(interface):一种成员属性全部为抽象或常量的特殊抽象类;方法全为抽象方法,抽象方法前不加abstract,抽象方法的访问权限都是public,成员属性都是const常量
├接口的实现(implements)与java类似
├php和java一样都是单继承多实现
├对象类型判断instanceof,用法与java类似;if(对象 instanceof 类名)
├对象__tostring(),打印类时自动调用tostring方法和java类似
├自动载入对象 function __autoload($class_n){include($class_n.".php");}
├对象异常处理 function __call($n, $v){print "functionname:".$n; print "func args:".print_r($v)}
?
?
abstract class animal{
    private $color;
    function __construct($color=""){
  $this->color =$color;
    }
    function __set($n, $v){
  $this->$n = $v;
    }
    function __get($color){
  return $this->color;
    }
    function run(){
  print "animal is running...";
    }
    abstract function sleep();
}
class cat extends animal{
function run(){
  animal::run();//子类调用父类的方法
  print "cat is running...";
}
function sleep(){
  print "cat is sleep...";
}
}
$cat = new cat("whilte");
print $cat->color."
";
$cat->color = "black";
print $cat->color."
";
$cat->run();
 

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn