zoukankan      html  css  js  c++  java
  • 面向对象(PHP学习)

    在对超大型项目的开发过程中,如果使用面向过程地开发,代码量是非常的庞大,这将大量的用到判断和循环嵌套,

    和很多很相似的代码,不仅使项目代码量更加的庞大,还不利于开发,重用及维护。

    面向对象就能很好的解决这个问题,面向对象很好的封装性,节省了很多精力,不用关心对象内部的运作,只要关心

    对象与对象之间的交互,便于维护,而继承性使得代码大量地精简。

    我们先来看一个题目:

    :张三是一位普通人,别人早晨向他打招呼,他会说“早上好”,但是有一天他被车撞了,脑子受了一点伤,

    因此,别人早晨向他打招呼时,他有时会说:“早上好”,但有时会说:“晚上好”,甚至辱骂对方。

    分析:因为现在要面向对象,那我们先把对象拿出来

       对象1:张三(人)   智商(名称是属性)   打招呼(动词是方法)

       对象2:车子  撞人(动词是方法)

    <?php 
    //创建一个human类,类是对象的实例(工厂里的模子)
    class human{
    	//普通人的iq为100
    	public $iq = 100;
    	//打招呼,早上看到人就早上好
    	public function greet(){
    		echo '早上好';
    	}
    }
    //实例化一个对象李四
    $lisi = new human();
    $lisi->greet();
    //返回早上好 
    
    
    ?>
    

      这个是实例化一个正常的李四

          下面来看被车子撞了的李四

    <?php 
    //创建一个human类,类是对象的实例(工厂里的模子)
    class human{
    	//普通人的iq为100
    	public $iq = 100;
    	//打招呼,早上看到人就早上好
    	public function greet(){
    		//当智商大于等于100
    		if($this->iq>=100){
    			echo '早上好','<br />';
    		}else{
    			//当智商小于100,随机出现以下问候
    			$regard = array('早上好','晚上好','混蛋');
    			echo $regard[rand(0,2)],'<br />';
    		}
    	}
    }
    //实例化一个对象李四
    $lisi = new human();
    $lisi->greet();
    //返回早上好 
    class car{
    	public function hit($people){
    		//撞了以后人的智商随机出现了变化
    		$people->iq=rand(40,120);
    	}
    }
    //实例化一辆宝马车子
    $baoma = new car();
    //宝马车子撞人了
    $baoma->hit($lisi);
    //撞人之后人的智商
    echo $lisi->iq,'<br />';
    //人的根据智商的多少,问候也不相同
    $lisi->greet();
    
    ?>
    

      

  • 相关阅读:
    将博客搬至CSDN
    vector iterator not incrementable For information on how your program can cause an an assertion Failure, see the Visual c + + documentation on asserts
    VS2013+opencv2.4.9配置
    数组去重排序
    堆排序理解 完整代码
    dijkstra 两点的最短路径 单源 最短路径
    欧拉回路
    next 前缀字符串
    继续畅通工程
    sql server转移tempdb数据库的物理存放位置
  • 原文地址:https://www.cnblogs.com/ggbd-lie/p/3276664.html
Copyright © 2011-2022 走看看