面试宝典---第12章

来源:互联网 发布:mac暴风影音调整字幕 编辑:程序博客网 时间:2024/05/01 11:13
header("Content-type:text/html;charset=utf8");echo "<br/>-------------------------------<br/>";echo "<br/>-------------------------------<br/>";echo "<br/>-------------12面向对象 16__desstruct,php页面执行完才调用------------------<br/>";class DestructFile{var $filename;var $filepath;var $open;function fileOpen($filepath,$filename){$this->filename=$filename;$this->filepath=$filepath;//$this->open=$open;//书本上这句需要注释才不报错if (!$this->open=@fopen($this->filepath."/".$this->filename,"w")) {echo "指定文件没有打开<br/>";}else{echo "指定文件已经打开<br/>";}}function __destruct(){//echo "hi";if (@fclose($this->open)) {echo "相关内容被注销<br/>";//这里不是文件最后,这个php页面执行完才输出的,看最下面;}else{echo "调用了析构函数,但是指定注销的内容不存在";}}}$op=new DestructFile();$op->fileOpen("","test.php");echo "<br/>-----------12面向对象 18--------------------<br/>";class A{function __construct(){echo "A";}}class B extends A{function __construct(){parent::__construct();//parent调用父类中方法;echo "B";}}new B();echo "<br/>--------------12.4抽象类与接口----19-------------<br/>";abstract class Person{abstract function height();abstract function sex();abstract function age();abstract function money();}//抽象类本身可以被继承,不能实例化的;class YM extends Person{public function __construct(){$this->height();//构造函数中调用方法;$this->sex();$this->age();$this->money();}public function height(){echo "我的身高是177cm<br>";}public function sex(){echo "我是男的<br>";}public function age(){echo "我的年龄是33岁<br>";}public function money(){echo "我的薪水是10000元<br>";}}new YM();echo "<br/>----------P147 --20.通过实例说明接口的具体应用---------------------<br/>";interface Person_One{public function height();public function age();}interface Person_two{public function sex();public function money();}//接口解决了类的单继承问题,用implements,类可以继承多个类;class JK implements Person_One,Person_two{public function __construct(){$this->height();$this->sex();$this->age();$this->money();}public function height(){echo "我的身高是177cm<br>";}public function sex(){echo "我是男的<br>";}public function age(){echo "我的年龄是33岁<br>";}public function money(){echo "我的薪水是10000元<br>";}}new JK();echo "<br/>-------------P148 真题21------------------<br/>";interface USB{function inputData();function outputData();function myInformation();}class MP3 implements USB{function myInformation(){echo "我是p3接口设备<br/>";}function inputData(){echo "将歌曲从p3传到PC中<br/>";}function outputData(){echo "将歌曲从电脑上传到P3中<br/>";}}class USBFalshDriver implements USB{function myInformation(){echo "我是U盘接口设备<br/>";}function inputData(){echo "将数据从U盘传到PC中<br/>";}function outputData(){echo "将数据从电脑上传到U盘中<br/>";}}class PC{function object($obj){$driver=new $obj();$driver->inputData();$driver->outputData();$driver->myInformation();}}$pc=new PC();$pc->object("USBFalshDriver");echo "<br/>--------P151真题26-----------------------<br/>";class AA{//toString当将对象转化为字符串的时候会调用这个函数;function __toString(){return "我是A类";}}echo new AA();//实例化是将对象转为字符串???echo "<br/>------P152真题27用面向对象编写冒泡排序----我自己编写的;---------------------<br/>";class ArrayGroup{function group($arr){for ($i=0; $i < count($arr); $i++) { for ($j=0; $j < $i; $j++) { if ($arr[$j]>$arr[$i]) {$temp=$arr[$i];$arr[$i]=$arr[$j];$arr[$j]=$temp;}}}return $arr;}}$ArrayGroup=new ArrayGroup();$array=array(4,3,6,5,1,2);$sort=$ArrayGroup->group($array);var_dump($sort);echo "<br/>-----------p152真题28插入排序法--------------<br/>";class CRPX{function sort($array){for ($a=1; $a < count($array); $a++) { $temp=$array[$a];//--为何必须放上面呢;--因:b+1后a位置的值变了;$b=$a-1;while ($array[$b]>$temp) {$array[$b+1]=$array[$b];//b+1这多次循环不能放a;$array[$b]=$temp;if ($b>0) {//if避免b为-1的报错;$b--;//返回while继续判断;}else{continue;}}}print_r($array);}}$a=new CRPX();$array=array(12,5,9,4,13);$a->sort($array);
0 0
原创粉丝点击