当前位置:首页 > PHP教程 > php面向对象 > 列表

PHP中的面向对象实践-基本实践案例

发布:smiling 来源: PHP粉丝网  添加日期:2022-06-15 08:18:43 浏览: 评论:0 

PHP中的面向对象实践-基本实践

(一)、基本实践

一、类的概念

PHP中的面向对象实践-基本实践案例

一、共同点:

都有相同的属性

都有相同的方法

二、不同点:

具体的值是不一样的

三、总结:他们都是一类的对象

说到类,现在来说说类的概念

1) 类定义

-我们说物以类聚,人以群分,把具有相似特性的对象归类到一个类中

所以我们去看对象的时候,试着去对比他们的属性和方法,如果他们的属性和方法都很相似,我们就可以把他们归到一类

-类定义了这些相似的对象都拥有相同的属性和方法

举例:一个NBA球员就是一个类的定义,它规定了只要是一个NBA球员,它就一定会具有:年龄,姓名,身高,体重,所在球队,球员号码

然后他们也会具有相同的技能:

PHP中的面向对象实践-基本实践案例

但是问题是,这个类里面有定义具体的身高吗,有具体的姓名吗,有具体的体重吗,都没有,但是如果我们把这些属性都写上去以后,是不是就是成为了具体的一个对象

这就是类和对象的关系,具体点就是,类是相似对象的描述,这个称之为类的定义,类是所有这些相似对象的蓝图或者原型

比如詹姆斯这个对象怎么来的,就是把这个类的属性值设置好就可以了

类的对象就是类的一个实例(Instance),这个操作也叫做类的实例化

比如詹姆斯,乔丹,科比都是NBA球员这个类的实例,实例的他们的这个过程就叫做类的实例化

类我们可以了解为,它就是一个空架子,它只是定义了对象怎么分,而对象的话它就定义了,具体的值,必须要把所有的属性值都写具体才行

补充一个概念:我们把类的对象和方法都统称为类成员

二、实例化的概念

1) 类的实例化定义

就是通过类创建一个具体的对象,这个过程就是类的实例化,相当于就是把这个空架子填满

举例:比如通过NBA球员这个类我们创建了詹姆斯,科比,乔丹,这其中就是把这个NBA球员类实例了3次

PHP中的面向对象实践-基本实践案例

总结:类只有一个,但是它可以被多次实例化,得到多个具体的对象

Tip:具体怎么实现,我们之后会在代码里进行具体的演示

2)类的实例化

2) 举例:以乔丹为例

PHP中的面向对象实践-基本实践案例

左边是类,没有数据,右边是乔丹,那么要实例化它怎么实例化呢,就是直接把这些姓名,身高,体重,所在球队,球员号码这些值填写具体,那么乔丹这个对象就实例出来了

Tip:实例化,可以理解为 将类 化作成一个实际的例子

三、具体案例

1) 案例学习目标

1. 如何定义一个类

2. 如何实例化一个类

3. 如何调用类的属性和方法

2) 具体见以下代码

  1. <?php 
  2.  
  3. /*** 
  4.  
  5.  * 案例目标: 
  6.  
  7.  *  1.类的定义 
  8.  
  9.  *  2.类的实例化 
  10.  
  11.  *  3.属性的赋值 
  12.  
  13.  *  4.方法的调用 
  14.  
  15.  *   
  16.  
  17.  */ 
  18.  
  19. /***定义一个类,类的名字叫NbaPlayer(中文=NBA球员) 
  20.  
  21.  * 提示: 
  22.  
  23.  *  1.定义类的过程:我们首先以class开始,然后写上类 名称:NbaPlayer,最后要写上一对{} 
  24.  
  25.  *  2.类的名字通常首字母要大写 
  26.  
  27.  *  3 
  28.  
  29.  *  
  30.  
  31. ***/ 
  32.  
  33. class NbaPlayer{ 
  34.  
  35.     //定义属性 
  36.  
  37.     public $name = ""
  38.  
  39.     public $height = ""
  40.  
  41.     public $weight = ""
  42.  
  43.     public $team = ""
  44.  
  45.     public $playerName = ""
  46.  
  47.     //定义方法 
  48.  
  49.     //定义跑的方法 
  50.  
  51.     //提示: 
  52.  
  53.       //方法定义的过程: 
  54.  
  55.         //1.写上方法的类型,public,表示公共的方法,可以被外部直接调用 
  56.  
  57.         //2.写上function 
  58.  
  59.         //3.定义方法的名称,然后写上一对(),最后{}结尾      
  60.  
  61.     //总结: 
  62.  
  63.         //方法定义和之前js中函数的定义是一样的,只是类中的方法多了一个public 
  64.  
  65.     public function run(){ 
  66.  
  67.         //里面的代码我们称之为业务逻辑 
  68.  
  69.         echo "跑步<br/>"
  70.  
  71.     } 
  72.  
  73.     //定义跳跃方法 
  74.  
  75.     public function jump(){ 
  76.  
  77.         echo "跳跃<br/>"
  78.  
  79.     } 
  80.  
  81.     //定义运球方法 
  82.  
  83.     public function dribble(){ 
  84.  
  85.         echo "运球<br/>"
  86.  
  87.     } 
  88.  
  89.     //定义投篮的方法 
  90.  
  91.     public function shoot(){ 
  92.  
  93.         echo "投篮<br/>"
  94.  
  95.     } 
  96.  
  97.     //定义扣篮方法 
  98.  
  99.     public function dunk(){ 
  100.  
  101.         echo "扣篮<br/>"
  102.  
  103.     } 
  104.  
  105.     //定义传球 
  106.  
  107.     public function pass(){ 
  108.  
  109.         echo "传球<br/>"
  110.  
  111.     } 
  112.  
  113. }  
  114.  
  115. //类到对象的实例化 
  116.  
  117. /*总结: 
  118.  
  119.     1、类的实例化过程= 通过new 类名() 即可完成一个类的实例化过程 
  120.  
  121. */ 
  122.  
  123. //1.创建乔丹 
  124.  
  125. $jordan = new NbaPlayer();//类的实例化 
  126.  
  127. //类赋值 
  128.  
  129. $jordan->name = "乔丹"
  130.  
  131. $jordan->height = "1.98米"
  132.  
  133. $jordan->weight = "98公斤"
  134.  
  135. $jordan->team = "公牛"
  136.  
  137. $jordan->playerName = "23"
  138.  
  139. //输出对象值 
  140.  
  141. print_r("乔丹名称:".$jordan->name."<br/>"); 
  142.  
  143. print_r("乔丹身高:".$jordan->height."<br/>"); 
  144.  
  145. //总结:通过->可以调用对象里的属性 
  146.  
  147. echo "<br/>"
  148.  
  149. //输出对象方法 
  150.  
  151. $jordan->dribble(); 
  152.  
  153. $jordan->pass(); 
  154.  
  155. //总结:通过->符号可以调用对象的方法 
  156.  
  157. ?>

Tags: PHP面向对象

分享到: