php_OOP初步掌握类和对象

作者: 鲁智深 分类: PHP 发布时间: 2015-03-03 01:40

面向对象的概述

1、汇编语言:面向机器

2、C语言:面向过程

3、java:面向对象

php:是面向过程和面向对象语言。从php4开始,开始支持面向对象,php5已经全面支持;面向对象编程(OOP:object-oriented-programming),其实只是一种编程的思想和面向过程一样。

提出一个问题?

张老太养了两只猫猫,一只名字叫小白,今年3岁,白色。还有一只叫小花,今年100岁,花色。请编写一个程序,当用户输入小猫的名字时,就显示该猫的名字,年龄,颜色。如果用户输入的小猫名错误。则显示张老太没有这只猫猫。

首先用现有的知识完成案例:

1
2
3
4
5
6
7
8
9
<?php
 $cat1_name="小白";
 $cat1_age=3;
 $cat1_color="白色";

 $cat2_name="小花";
 $cat2_age=100;
 $cat2_color="花色";
?>

我们能不能把属于同一事物的变量,统一管理起来

快速体验案例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//类(数据类型/复合类型)
class Cat{
   public $name;
   public $age;
   public $color;
}
//创建一只猫
//通过一个cat类创建了一个cat对象
$cat1=new Cat();
$cat1->name="小白";
$cat1->age="3";
$cat1->color="白色";
$cat2=new Cat();
$cat2->name="小花";
$cat2->age="100";
$cat2->color="花色";
//如果我们找到一只猫,$cat1,那么该变量所有相关属性都找到
if($cat1->name=="小白"){
   echo $cat1->name.$cat1->age.$cat1->color;
}

类和对象介绍:

类:具有相同属性和行为的一组集合,属于该类的所有对象提供统一描述了,属性变量表示,行为用function表示。(类似产品说明书)

对象:在我们客观世界里,实实在在存在的实体。(类似制作出来的产品)

类和对象的关系

类和对象的关系

类的定义格式

1
2
3
4
[修饰符] class 类名{
     [成员属性] 可以有默认值,默认值不能是变量,不能有运算,默认值可以是常量,值可以是任意数据类型
     [成员方法]
    }

案例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
     header("Content-type:text/html;charset=utf-8");
    class MeiZi{
         //成员属性 默认public
         public $name;
         public $age;
         public $size;
         
         //在类的定义里面出来成员属性和方法不能出现其他内容如下
         //echo '#####';
         
         //成员方法
         public function say(){
             echo '鲁智深在写代码';
         }
    }
   
    //实例化对象(得到数据)
     $ch = new MeiZi;
     var_dump($ch);
     
     echo "<br/>----//对象成员的访问---<br/>";
     $ch->name = '六六六';
     $ch->age = 18;
     $ch->size = '20D';
     var_dump($ch);
     
     echo "<br/>----//成员方法访问---<br/>";
     $ch->say();
?>

面向对象编程的介绍:

OOP编程思想,为技术人员敞开了一扇令人兴奋大大门,通过面向对象,可以使编写的代码更加的简洁,更易于维护,重用性。

OOP达到了软件工程的三个目标:重用性,灵活性,扩展性、高内聚,低耦合

OOP面向对象的编程特点:封装、继承、多态

OOP面向对象的二个主要特性:对象的属性,对象的行为。

案例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
     header("Content-type:text/html;charset=utf-8");
     /*
         OOP面向对象的编程
         
         对象:万事万物皆对象
         
         类:对相同或相似对象的抽象描述
         
         类与对象的关系
             先有类通过类得到对象      
         
         类的定义格式
         [修饰符] class 类名{
             [成员属性] 可以有默认值,默认值不能是变量,不能有运算,默认值可以是常量,值可以是任意数据类型
             [成员方法]
         }
     */

     
     //定义人类
     //命名规范:字母数字下划线,不能用数字开头
     //userModel UserModel user_model 建议使用大驼峰命名风格
     $num = 18;
     define('NUM',18);
     
     class Pereson{
         //成员属性
         public $name = '鲁智深';
         //默认值不能是变量
         //public $age = $num;
         //默认值不能有运算
         //public $age =18+2;
         //默认值可以是常量
         public $age = NUM;
         //值可以是任意数据类型
         public $size = array(1,2,3,4,5);
         //成员方法
         public function say($a){
             //变量作用域
             //echo $num;          //Notice报错
             echo $a;
             
             //伪变量,$this表示自己
             echo '我是:'.$this->name;
             
             //调用自己的方法
             $this->test();
         }
       
         public function test(){
             echo '我是用于测试的方法';
         }
     }
     
     //实例化对象(通过类得到对象)
     $p = new Pereson;
     $p->say(100);
     var_dump($p);
?>

总结:

1、类是抽象的,概念的,代表以类事物,比如人类、猫类;

2、对象是具体的,实际的,代表一个具体事物;

3、类是对象的模版,对象是类的一个个体实例。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

2条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注