PHP面向对象 基本概念

面向对象介绍

  • 概述

    • 面向对象是一个编程思想。编程思想有面向过程和面向对象
      • 面向过程:编程思路集中的是过程上
      • 面向对象:编程思路集中在参与的对象
  • 好处

    • 多人合作方便
    • 减少代码冗余,灵活性高
    • 代码的可重用性发挥到极致
    • 可扩展性强
  • 名词

    • OOP:面向对象编程(Object Oriented Programming,面向对象编程)
    • OOA: 面向对象分析(Object-Oriented Analysis,OOA)
    • OOD: 面向对象设计(Object-Oriented Design,OOD)

类和对象

  • 概念

    • 对象是具体存在的事物,对象是由属性(变量)和方法(函数)组成的
    • 类是具有相同属性和行为的一组对象的集合
    • 一个类可以创建多个对象
  • 理解

    • 对象是由属性和方法组成的
    • 类是所有对象的相同属性和方法的集合
    • 在开发的时候先写类,通过类创建对象,通过对象调用方法和属性
    • 一个类可以创建多个对象

在PHP中实现类和对象

创建类

  • 语法
class 类名{
	//属性
	//方法
	//常量
}
  • 概念
    • 类是由属性、方法、常量组成的
    • 也可以说类成员有:属性、方法、常量

类名的命名规则

  • 规则
    • 以字母、下划线开头,后面跟的是字母、数字、下划线
    • 不能用PHP关键字做类名
    • 类名不区分大小写(变量名区分,关键字、类名不区分大小写)
    • 类名用帕斯卡命名法(大驼峰 单词的首字母大写)
<?php
class Student {
    //属性
	//方法
	//常量
}
?>

对象实例化

  • 通过new关键字来实例化对象。
    • 小括号可以省略
<?php
//定义类
class Student {
	//属性
	//方法
	//常量
}
//实例化对象
$stu1=new Student();
$stu2=new Student;		
var_dump($stu1,$stu2);	
?>

对象的比较

  • 概述
    • 相等:结构和保存的值一样就相等
    • 全等:指向同一个对象才是全等
    • 对象的传递是地址传递
<?php
//定义类
class Student {
	
}
//实例化对象
$stu1=new Student();
$stu2=new Student;
$stu3=$stu2; //对象传递的是地址	

var_dump($stu1==$stu2);		//bool(true) ,比较对象的结构
echo '<br>';
var_dump($stu1===$stu2);	//bool(false) $stu1和$stu2是否是同一个对象
echo '<br>';
var_dump($stu2===$stu3);	//bool(true) $stu2和$stu3是同一个对象
?>

类和对象在内存中的分布

  • 说明
    • 对象的本质是一个复杂的变量
    • 类的本质是一个自定义的复杂数据类型
    • 栈区:运行速度快,体积小,保存基本类型
    • 堆区:运行速度稍慢,体积大,保存复杂类型
    • 实例化的过程就是分配内存空间的过程
    • 对象保存在堆区,将堆区的地址保存到栈区

封装

  • 说明
    • 封装就是有选择性的提供数据
    • 通过访问修饰符来实现封装
posted @ 2020-12-10 19:45  wing1377  阅读(171)  评论(0编辑  收藏  举报