面向对象的基本概念

面向对象的三大特征:继承 封装 多态

类和对象:

类是一个抽象的概念

对象是一个具体的实例

张三是一个对象,李四也是一个对象。王五同样是一个对象。。。。。

他们都隶属于“人”这个“类”(人类),同时我们也可以说隶属于“脊椎动物类”,还可以说属于动物类,甚至生物。

类:是用于描述“某一些具有共同特征”的物体的概念,是某一类物体的总称。

通常,一个类所具有的共同特征包括2大方面的信息:

外观,形状,描述,数据。。。。。属性

行为,动作,功能。。。。。。。。方法。

对象:是指一个具体的“物体”,该物体隶属于某个“类别”(类)。

通常,对象离不开类,没有类,就不能有对象。

通过一个需求来了解面向对象(面向对象的思想由来)

需求:

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

首先用现有的技术来解决这个问题(思想)

方案1:给每个小猫定义三个变量来记录猫的信息:

$cat_name = '小白';
$cat_age = 2;
$cat_color = "白色";

  以上虽然能够解决问题但是不利于数据的管理和维护

方案二:使用数组

$cat = array('name' =>"小白",'age' =>"2",'color'=>"白色");

使用数组来记录要好点,但是不能对数组进行有效的操作(函数)

方案三:使用面向对象编程的方式来解决

//先定义一个 类
class cat{
public $name;
public $age;
public $color;
} //定义一个对象
$cat1 = new cat(); //给该猫的对象赋值
$cat1->name = "小白";
$cat1->age = 2;
$cat1->color = "白色"; //下面简单使用一下
echo "<br>";
echo '小猫的信息如下';
echo '<br>小猫的名字是 ' . $cat1->name;
echo '<br>小猫的名字是 ' . $cat1->age ;
echo '<br>小猫的名字是 ' . $cat1->color ;

下面来简单说明一说明:

(1) class 是一个关键字,表示这是一个类,不能修改

(2) public $name , 是一个成员属性, 当我们类定义的{} 中定义的变量,就是一个成员属性

(3) public 是访问修饰符, 他是用于控制成员属性(变量)的访问范围的, 除了public还有两个,protected 和 private ,后面我们会详细介绍

(4) $cat1 = new Cat , 这个叫实例化一个对象, $cat1 就是一个对象, new 是一个关键字,表示新创建一个对象

(5) $cat1->name = '小白'; 表示给成员属性赋值,-> 符号叫做对象运算符

(6) 当我们需要看一个对象的情况时,我们可以通过 var_dump 来输出该对象

最新文章

  1. eclipse — Failed to load the JNI shared library”……\jvm.dll问题原因以及解决方案
  2. c#窗体虚线图形验证码设计
  3. [转]PLSQL Developer备份恢复oracle数据
  4. 在CentOS 7 上搭建LAMP
  5. iOS发布条款检查表
  6. JS判断用户是否在线的方法
  7. 如何实现Conditional Include
  8. 实时消息传输协议 RTMP(Real Time Messaging Protocol)
  9. PTVS在Visual Studio中的安装
  10. C#面试题记录
  11. 使用travis-ci自动部署github上的项目
  12. C++获取基类指针所指子类对象的类名
  13. 理解矩阵与线性代数&lt;转&gt;
  14. TED学习笔记
  15. vue中&lt;select&gt;绑定事件
  16. request.getSession()几种获取情况之间的差异
  17. spring资源访问接口和资源加载接口
  18. Python 使用 xlwings 往 excel 中写入一行数据的两种方法
  19. ActiveMQ Advisory Message
  20. Java的大内存分页支持

热门文章

  1. Pathfinding 模板题 /// BFS oj21413
  2. leetcode 题型 数据结构 解法 分类总结
  3. 纯css制作小三角
  4. CSIC_716_20191119【常用模块的用法 subprocess、re、logging、防止自动测试、包的理论】
  5. The Preliminary Contest for ICPC Asia Nanjing 2019 C. Tsy&#39;s number 5
  6. jquery学习笔记(三):事件和应用
  7. jeecms jeecmsv93建库
  8. 9个搜索引擎优化(SEO)最佳实践
  9. 安装MySQL出现的this application
  10. 17.splash_case02