首页 > 代码库 > 面向对象

面向对象

面向过程编程:
     就是程序一步一步的从上到下的执行,最终实现我们想要的结果。
 
缺点:
  如果我们只是简单的实现一个功能,比如说我们之前写的购物车,是完全可以的
  但是当我们程序变得越来越大,每个文件和每个文件中的某些变量以及函数是有依赖关系的,当我们改了A文件中的变量或者函数的时候,其他文件也要跟着修改,此时程序就变得不好维护,并且随着程序越来越大,这种编程方式的维护成本也会越而来越高,使用面向过程的编程方式就显得心有余而力不足了。
 
面向对象编程:
 
  核心:利用“类”和“对象”来创建各种模型从而实现对真实世界的描述
  好处:因为它可以使我们的程序变得简单维护以及可扩展,并且能够提高我们程序的开发效率。
  
  我们来理解一下什么是类和对象?
   
   技术分享
   谁是类,谁是对象?
  
  再来看一个例子:
  技术分享
  最终的结果:
   技术分享

  谁是类,谁是对象?

  

  很显然:

    类------说明书

    对象----书柜

总结:

  类-----> 是对一类拥有相同属性的对象的抽象、原型。在类中定义了这些对象的都具备的属性(variables(data))、共同的方法,就像人类

   对象---> 是一个类的实例化后实例,一个类可以造(实例化)多个对象,但每个对象亦可以有不同的属性。就像人类是指所有人,每个人是指具体的对象,人与人之间有共性,亦有不同
 
在我们程序中怎样定义类和对象呢?
  现在想要造N个人的对象:
    
  1.创建人类,且只需要创建一次
    
技术分享
1 class Human{
2 
3 }
View Code

  但是很明显,这个类是空的,显然和我们人类特征是不符的

  所以,我们想想,

  我们人类都有什么? (体重,身高,姓名...)--> 属性

  都能干什么?   (哭,笑,打招呼,吃饭...)--->方法

  在面向对象中,我们使用“变量”模拟属性,使用“函数”模拟方法功能

技术分享
class {
   // 属性
   public $name = "nobody";
   public $height = 30;  
   
  // 方法  
   public function  say(){
          echo "hello";  
    }
}
View Code

 

  2.再由类创造人的对象,可以创建N个

技术分享
 1 class Human{
 2     # 属性
 3     public $name = "nobody";
 4     public $weight = 30; 
 5     .....
 6 
 7     # 方法
 8     public function say(){
 9         echo "hello";
10     }
11     ...... 
12 }
13 $alex = new Human();
14 $alex1 = new Human();
15 .......
View Code

 

面向对象