面向对象的基本概念

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

类和对象:

类是一个抽象的概念

对象是一个具体的实例

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

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

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

通常,一个类所具有的共同特征包括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 来输出该对象

php面向对象的初认识的更多相关文章

  1. php面向对象(一) 初窥

    初窥php面向对象 1.类:类就是属性和方法的集合 是一个抽象的概念比如生活中的“人”,"汽车"2.对象:对象是具体的事物 比如一叫“小强”的人 一辆叫“奥迪a7”的汽车3.类和对 ...

  2. 从零开始的全栈工程师——JS面向对象(初篇)

    面向对象编程 面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式.它使用先前建立的范例,包括模块化,多态和封装几种技术.今天,许多流行的编程语言(如Java,JavaScript,C#,C+ ...

  3. 第四章 Js的面向对象的初窥视(天生的哈希表)

    对象就有键值对 var speaker = { text: "Hello World", say: function(){ console.log("Hello Worl ...

  4. 【web前端面试题整理02】前端面试题第二弹袭来,接招!

    前言 今天本来准备先了解下node.js的,但是,看看我们一个小时前与一个小时后的差距: 既然如此,我们继续来搜集我们的前端面试题大业吧!!! 特别感谢玉面小肥鱼提供哟,@玉面小飞鱼 题目一览 Jav ...

  5. JavaScript精要

    写在开篇之前 这个系列都文章算是我最近研究了JavaScript(以后简称js)大半个月的一点心得吧.记得以前看过罗小平的一本书叫<Delphi精要>,我也就姑且起名叫<JavaSc ...

  6. 面向对象初调用:foolish 电梯

    本周我们完成的任务是傻瓜电梯的调度,对于那十分十分详细的指导书,我感觉想要说明白题目要求,是做不到的,所以就把指导书贴出来给大家看了,,由于在下还不会网页制作,只能通过百度网盘了,https://pa ...

  7. 闭包初体验 -《JavaScript面向对象编程指南》

    下面是我对闭包的理解:(把他们整理出来,整理的过程也是在梳理) 参考<JavaScript面向对象编程指南> 1.首先,在理解闭包之前: 我们首先应该清楚下作用域和作用域链 作用域:每个函 ...

  8. TypeScript之面向对象初体验

    1.安装nodejs和vscode: nodejs : https://nodejs.org/en/ Visual Studio Code :  https://www.visualstudio.co ...

  9. python_92_面向对象初体验

    class dog: def __init__(self,name): self.name=name def bulk(self): print('%s汪汪汪!'%self.name) d1=dog( ...

随机推荐

  1. HTML样式链接到外部样式表

    w3cschool链接:http://www.w3school.com.cn/html/html_css.asp <html> <head><link rel=" ...

  2. 整理下webapi的一些琐碎事情

    在使用webapi的时候我们会遇到一些问题比如 1.POST怎么请求 2.怎么兼容JSONP请求 3.怎么给指定端提供跨域的请求 4.怎么显示单独的models层的注释 问题一二其他人都玩的比较成熟的 ...

  3. FCC知识点总结

    1.DOMContentLoaded事件 2.延迟脚本 defer 3.异步脚本async 4.[找最长单词]—— 找出句子中最长的单词,并返回它的长度. 5.数组slice().splice() s ...

  4. canvas插入图片设置背景,渐变

    ##在canvas中插入图片(需要image对象) 1.canvas操作图片时,必须要等图片加载完才能操作 2.drawImage(image, x, y, width, height) 其中 ima ...

  5. Linux 添加时间

    添加在指令后面 `date +%Y%m%d%H%M`注意date和+之间一定要有空格 ps: %%    一个文字的 %  %a    当前locale 的星期名缩写(例如: 日,代表星期日)  %A ...

  6. 一个切图仔的HTML笔记

    1,href="javascript:history.back(-1)" //页面返回上一步 2,meta信息设置 360浏览器就会在读取到这个标签后,立即切换对应的极速核. &l ...

  7. 2019亚太内容分发大会,阿里云获CDN领袖奖、技术突破奖

    近日,亚太CDN产业联盟主办的2019亚太内容分发大会在上海召开.本次大会以"5G分发"为主题,集结了CDN领域近千名行业领袖.专家参与.在会上,阿里云斩获“CDN领袖奖”.“技术 ...

  8. PouchContainer 开源版本及内部版本一致性实践

    PouchContainer 开源版本及内部版本一致性实践 为什么要做内外版本一致 对外开源是提升影响力.共建生态的有力手段.在项目对外开源的过程中,首先是将可以开源的部分抽离出来,发布一个“开源版本 ...

  9. shell启停服务脚本模板

    一. 启动脚本模板:符合幂等性 如果该服务已经启动,再次调用该脚本,不会报错,也就是说可以反复多次调用,另外启动成功返回 一个参数,提供给自动发布平台校验该服务是否启动 #!/bin/bash ins ...

  10. k8s 安装

    1.1 k8s的架构 除了核心组件,还有一些推荐的Add-ons: 组件名称 说明 kube-dns 负责为整个集群提供DNS服务 Ingress Controller 为服务提供外网入口 Heaps ...