2016/3/22 面向过程 面向对象:①多态 ②引入页面加载类

面向过程:每一步骤,步步推进,重复使用性差。

面向对象:封装(class类,function方法,new初始化),重复使用性强。

 例子:

 1 //面向过程
 2 $r1=20;
 3 $r2=10;
 4 $mj=3.14*$r1*$r1-3.14*$r2*$r2;
 5 echo $mj;
 6 
 7 //面向对象
 8 class yuan
 9 {
10     private $r;
11     function __construct($r)
12     {
13         $this->r=$r;
14     }
15     function mj()
16     {
17         return 3.14*$this->r*$this->r;
18     }
19 }
20 $yuan1=new yuan(10);
21 $yuan2=new yuan(20);
22 echo $yuan2->mj()-$yuan1->mj();

 

①多态:父类引用指向子类实例,由于子类的不同,所表现出的差别,就是多态。
注意:
1,Java中多态的实现方式:接口实现,继承父类进行方法重写,同一个类中进行方法重载。
2,子类继承父类方法是重写。类不同。
3,同一类中类型不同,数量不同,是方法的重载。

例:

 1 class Ren
 2 {
 3     public $name;
 4     public $age=10;
 5     
 6     public function Say()
 7     {
 8 
 9     echo $this->name."正在说";
10     }
11     function __construct($n)
12     {
13         $this->name=$n;
14     }
15     function __tostring()
16     {
17         return "成员变量name的值为:".$this->name."<br>"."成员方法Say()的作用是...";
18     }
19     function __clone()    //克隆的方法
20     {
21         $this->age=20;//$this找的是复本
22         //$that->aa=16;//$that找的是原本,老版本中有,新版本中已弃用。
23     }
24 
25     
26 }
27 $ren=new Ren("aa");
28 $r2=clone $ren; //克隆 $ren  
29 echo $r2; 

30 var_dump($ren);

31 var_dump($r2);

显示效果:

 

继承中的重写

 1 class Ren
 2 {
 3     public $name;
 4     public $age=10;
 5     
 6     public function Say()
 7     {
 8 
 9         echo $this->name."正在说";
10     }
11     function __construct($n)
12     {
13         $this->name=$n;
14     }
15     function __tostring()
16     {
17         return "成员变量name的值为:".$this->name."<br>"."成员方法Say()的作用是...";
18     }
19     function __clone()
20     {
21         $this->age=20;//$this找的是复本
22         $that->aa=16;//$that找的是原本,老版本中有,新版本中已弃用。
23     }
24 
25     
26 }
27 
28 class China extends Ren
29     {
30         public function Say()
31         {
32             echo "你好!";
33         }
34     }
35 $ren=new China("hello");
36 $ren->Say();
37 echo $ren->name;

显示效果:

② 引入  

方式:

相对路径:从当前文件找到另一个文件路径。

include("文件名.php");//同级目录下

include"../文件名.php";  //上级目录

require_once("文件名.php");//同级目录下

require_once"文件夹名/class.php";//下级目录

 

自动加载类

1 function __autoload($classname)
2 {
3     require_once"class_".$classname.".php";
4 }

例子:

1 include("text6.php");
2 $test=new Text();
3 var_dump($test);
4 $test->run();

显示效果:

posted on 2016-03-22 11:58  一棵树2016  阅读(224)  评论(0编辑  收藏  举报