没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
107-面向对象的哲学
面向对象PHP5 中非常重要的一个概念
面向对象的哲学
面对对象的概念(类是什么?对象是什么?)
面向对象的基础语法---声明类
如何创建一个对象
没有面向对象之前,我们能否开发程序?
答:当然可以.
比如c 语言,没有类与对象的概念.
被称为面向过程的语言.
面向对象与面向过程,同样是一种编程范式.
回顾以往的代码
每一个步骤,每个分支,都是我们考虑进来,并加以控制的.
如果步骤/人物角色/分支特点多的时候,
程序庞大,不好维护.
而从开发角度讲,无论你多少分支,多少步骤.
这 1W 或 2W 个步骤,也是在我们的讨论范围内的一个确定情况.
=============
比如一只鸡,他有可能来叨菜叶,也有可能不来.
这个事情,就没必要在你创建之初定义下来.
定义一只鸡这样的一个对象,
他有一定的智商,有一定的功能,比如叨菜叶.
至于去不去,受环境的影响,比如菜叶的大小,园子的远近....
就是说:作为上帝,创建有功能的"对象".
对象有一定的功能,
对象与对象之间在其功能范围内,相互操作.
至于做哪些操作?
比如公鸡可以去吃沙子,可以去吃菜叶,也可以斗架.
<?php
//01.php
/*
从地址栏接收gender 参数,男/女
模拟商场迎宾的行为:
如顾客为男:则招呼"先生好";
如顾客为女:则招呼"女士好";
用地址栏的参数来模拟顾客的性别.
*/
$g=$_GET['gender'];
if($g=='男'){
echo'先生好';
}elseif($g=='女'){
echo'女士好';
}else{
echo'妖猴!';
}
/*
这个程序,
对于可能性的判断,都被我们详细的讨论到,
并为每一种可能准备的相应的操作.
*/
?>
<?php
//02.php
/*
张三
张三的智商
张三打招呼
车
车撞人
以往我们分析:
收到什么数据
做什么判断
各自再怎么处理....
我们把张三看成一个对象
张三有智商--->属性[名字]
张三能打招呼--->功能/方法[动词]
车也是一个对象
车能撞人--->功能/方法[动词]
*/
classMan{
public$iq=100;
publicfunctionsay(){
$arr=array('早上好','晚上好','尼妹呀');
if($this->iq>=100){
echo$arr[0];
}else{
$i=rand(0,2);
echo$arr[$i];
}
}
}
classCar{
publicfunctionhit($people){
$newiq=rand(50,110);
$people->iq=$newiq;
}
}
$lisi=newMan();
$QQ=newCar();
$lisi->say();
echo'<br/>';
//撞击
$QQ->hit($lisi);
echo$lisi->iq,'<br/>';
$lisi->say();
echo'<br/>';
$lisi->say();
echo'<br/>';
$lisi->say();
echo'<br/>';
/****
这一道题的目的---是让大家换个思维,换个面向对象的思维来看待问题.
至此里面的语法,你不懂,没关系.
****/
?>
108-类与对象的概念
先从生活中的角度来理解面向对象
类的概念
对象的概念
以女娲造人为例,
女娲看到人世间冷清,于是在水中照见自己的形象
并在自己的形象基础上构思,加上 2 条腿.
动手捏泥人!
思考问题 1:
在泥人产生之前,先产生的是"女娲在脑子中构造的人的形象"
然后根据形象来捏人.
思考问题 2:
捏的人都有一个什么特点-----和人的形象相符
换句话说:
人的形象是抽象的,用来说明人的共同特点的.
而每一个人,是具体的,且符合形象的描述.
类:就是所有对象共同点的一个抽象.
就是一个----制造说明书!
对象:就是根据说明书造出来的具体对象.
====我买过一个四层书柜,
原以为是现成书柜,送来货后发现是说明书+板子+螺丝
说明书上说清了A 板B 板....如何结合
并画了一张图,就是组装成功后的图.
我照着图--最终组装一个书柜.
说明书---就是类.
书柜-----就是对象.
???如果原材料非常多,我造 1000 个书柜,
需要几份说明书
答:还是 1 份.
===========如果我们在 PHP 中用面向对象的话====
想造 N 个人的对象,
需要先:创建人类,且只需要创建 1 次.
然后再:由类创造人的对象,可以 N 次.
=======如果声明类====
对象有什么?属性(身高,体重,姓名)
对象能干什么?功能(哭,笑,招呼,吃饭)
我们用"变量","函数"来模拟"属性"/"功能"
我们把{N 个属性+N 个方法}打包成一个"东西",--就是对象.
其实就是 N 个变量,N 个函数,打包到某个对象里.
这个对象可以使用这 N 个变量,N 个函数
<?php
//03.php
/**
人类
声明语法:
class类名{
}
这个类,没有属性,也没有方法
**/
classPeople{
//public的含义先别管
public$name='nobody';
public$height=30;
publicfunctioncry(){
echo'呱呱坠地';
}
}
/****
有了类,就可以产生对象了.
如何类来产生对象?
new类名();这个语句返回对象
返回的对象赋给一个变量
****/
$a=newPeople();
print_r($a);
/***
这个 a 是什么,a 对象
就是一个箱子,里面装了 N 多属性和属性值
$a={name:nobody,height:30}
可以看出$a 是一个复合数据,
我们要想访问$a 的名字,即$a 里面name 的值,
我们可以怎么访问呢?
答:肯定是得通过$a 来访问了.
$a->属性名,就可访问该属性的值
***/
echo$a->name,'<br/>',$a->height,'<br/>';
$b=array('name'=>'nobodyB','height'=>'40B');
echo$b['name'],'<br/>',$b['height'];
echo'<br/>';
//====对象调用其方法====//
$a->cry();
?>
109-属性与方法的注意点
<?php
//04.php
//声明类的时候,注意点.
/*
1:关于属性值,可以声明属性并赋值,也可以声明属性先不赋值
如果不赋值,则属性的初始值是 NULL
2:关于 PHP 中的类,请注意,属性必须是一个"直接的值"
是 8 种类型任意的"值".
不能是:表达式1+2的值
不能是:函数的返回值time();
这点和 java 不一样.
*/
classHuman{
//public$age=time();//错误
//public$age=1+2;//错误
}
$a=newHuman();
echo$a->age,'<br/>';
classPeople{
public$age;
}
$b=newPeople();
var_dump($b->age);
echo'<br/>';
?>
<?php
//05.php
//方法的注意点
剩余63页未读,继续阅读
资源评论
- sinat_356483852018-09-07很好的资源
- O18882016-11-25很不错的资源,谢谢分享!
- fenglisong10022016-06-21很棒,谢谢分享!值得学习的资源
ywsz_520
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Spring Cloud商城项目专栏 049 支付
- sensors-18-03721.pdf
- Facebook.apk
- 推荐一款JTools的call-this-method插件
- json的合法基色来自红包东i请各位
- 项目采用YOLO V4算法模型进行目标检测,使用Deep SORT目标跟踪算法 .zip
- 针对实时视频流和静态图像实现的对象检测和跟踪算法 .zip
- 部署 yolox 算法使用 deepstream.zip
- 基于webmagic、springboot和mybatis的MagicToe Java爬虫设计源码
- 通过实时流协议 (RTSP) 使用 Yolo、OpenCV 和 Python 进行深度学习的对象检测.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功