PHP学习之-面向对象
PHP学习之-面向对象
1、什么是对象
"世界万物皆对象",一切可以被抽象出来的东西都是对象。像花,草。看不到的"概念"都是对象。
2、对象的基本组成
a.属性。对象的描述。
b.方法。对象的行为。
例子:NBA球星会打篮球 。 球星的身高体重就是他的属性,打篮球这个行为就是它的方法。
3、对象的特征
a.独特性,每一个对象都是独一无二的。
b.对象是一个特定的事务,他有一定的职能。
c.对象是可以重复使用的。
4、面向对象的实质
面向对象就是把生活中需要解决的的问题都用对象的方式进行存储。
-属性
-方法
独享直接通过方法的调用来来实现互动
-方法
5、面向对象的基本思路。
将万物通过对象的方式去描述
a.识别对象。
-任何实体都可以被识别为一个对象。
b.识别对象的属性
-对象烈面存储的数据被是被为属性
-对于不同的业务逻辑,关注的数据不同对象里面存储的属性也是不同
c.识别对象的行为
-对象自己属性数据的改变
-对象和外部的交互
总结:将一个实体识别为一个对象,通过属性描述它的特征,行为来描述他的给功能。
6、面向对象的基本原则
a.对象内部是高内聚的
-对象只是负责一项特定的职能
-所有的对象相关的内容,都会封装到内部,以属性和方法的形式存在
b.对象对外是低耦合的
-外部世界可以看到对象的一些属性。
-外部世界可以看到对象的某些事情。
总结:高内聚,低耦合
7、面向对象的基本概念
a.类
-物以类聚,把具有相似特征的对象归类带一个类中
-类定义了这些相似对象拥有相同的属性和方法
-类是相似对象的描述,称为类的定义,是该类对象的蓝图或者原型。
-类的对象称为类的一个 实例。
-类的属性和方法称为 类成员
b.类的实例化
类的实例化(instantiate) 通过类定义一个类的对象
c.类和类的实例化
-创建一个类
<?php
class NbaPlayer {
public $name = "乔丹";
public function run(){
echo "Running\n";
}
}
$jordan = new NbaPlayer();
echo $jordan->name."\n";
echo $jordan->run();
d.构造函数
默认构造函数在对象创建的时候被调用。
__construct() 构造方法
$this 伪变量
<?php
class NbaPlayer {
public $name;
function __construct(){
$this->name = "乔丹";
echo "创建NBA球员\n";
}
public function run(){
echo "Running\n";
}
}
$jordan = new NbaPlayer();
echo $jordan->name."\n";
echo $jordan->run();
e.析构函数
析构函数会在程所有程序序执行完了就会被执行。
析构函数干预,将对象置为空过后就会被执行
<?php
class NbaPlayer {
public $name;
function __construct(){
$this->name = "乔丹";
echo "创建NBA球员\n";
}
public function run(){
echo "Running\n";
}
function __destruct(){
echo "析构函数运行了\n";
}
}
$jordan = new NbaPlayer();
echo $jordan->name."\n";
echo $jordan->run();
//$jordan = null;
echo "程序结束\n";
PHP学习之-面向对象的更多相关文章
- 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用
垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...
- 0028 Java学习笔记-面向对象-Lambda表达式
匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...
- 0025 Java学习笔记-面向对象-final修饰符、不可变类
final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...
- 0013 Java学习笔记-面向对象-static、静态变量、静态方法、静态块、单例类
static可以修饰哪些成员 成员变量---可以修饰 构造方法---不可以 方法---可以修饰 初始化块---可以修饰 内部类(包括接口.枚举)---可以修饰 总的来说:静态成员不能访问非静态成员 静 ...
- C#学习笔记——面向对象、面向组件以及类型基础
C#学习笔记——面向对象.面向组件以及类型基础 目录 一 面向对象与面向组件 二 基元类型与 new 操作 三 值类型与引用类型 四 类型转换 五 相等性与同一性 六 对象哈希码 一 面向对象与面向组 ...
- 前端学习:JS(面向对象)代码笔记
前端学习:JS(面向对象)代码笔记 前端学习:JS面向对象知识学习(图解) 创建类和对象 创建对象方式1调用Object函数 <body> </body> <script ...
- Python学习之==>面向对象编程(二)
一.类的特殊成员 我们在Python学习之==>面向对象编程(一)中已经介绍过了构造方法和析构方法,构造方法是在实例化时自动执行的方法,而析构方法是在实例被销毁的时候被执行,Python类成员中 ...
- canvas学习和面向对象(二)
Canvas 学习(二) 上一篇Canvas 学习(一)中我是用canvas绘制了一些基本和组合的图形. 现在开始绘制图片和动画帧,以及面向对象的升级版本. 还是一样,看代码,所有的代码都托管在git ...
- Python学习一(面向对象和函数式编程)
学习了一周的Python,虽然一本书还没看完但是也收获颇多,作为一个老码农竟然想起了曾经荒废好久的园子,写点东西当做是学习笔记吧 对Python的语法看的七七八八了,比较让我关注的还是他编程的思想,那 ...
随机推荐
- 第一种:NStread
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typica ...
- SSH框架入门学习之二(spring)
Spring也是一个开源框架,我在学习Spring的时候,认为最重要的几点是:IOC(控制反转).AOP(面向切面)和容器概念. 详细的教程还请大家去看网上的视频,这里贴一个小Demo以供学习. (前 ...
- 自定义UISlider的样式和滑块
又做完一个项目,遂到了写帖时间了,要跟大家分享的是:自定义UISlider的图片和滑块,先看一下效果: 然后是实现了,我们使用的是UISlider的setMinimumTrackImage,和setM ...
- 【web开发学习笔记】Structs2 Result学习笔记(三)带參数的结果集
Result学习笔记(三)带參数的结果集 第一部分:代码 //前端 <head> <meta http-equiv="Content-Type" content= ...
- Ubuntu设置为命令行登录
root@ubuntu:~# vi /etc/default/grub 改: #GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMD ...
- Android百度地图之显示地图
添加地图显示 一.在百度官网下载相关的SDK (网址:http://developer.baidu.com/map/sdkandev-download.htm) 解压下载好的BaiduMap_Andr ...
- Strange Country II 暴力dfs
这题点的个数(<=50)有限, 所以可以纯暴力DFS去搜索 //#pragma comment(linker, "/STACK:16777216") //for c++ Co ...
- 用二进制方法求两个整数的最大公约数(GCD)
二进制GCD算法基本原理是: 先用移位的方式对两个数除2,直到两个数不同时为偶数.然后将剩下的偶数(如果有的话)做同样的操作,这样做的原因是如果u和v中u为偶数,v为奇数,则有gcd(u,v)=gcd ...
- mul16
设计思想:乘法运算本身就可以看做是一个移位相加的过程 1 1 0 1 0 = 26* 1 0 1 1 1 = 23 ...
- Directshow 通过 put_Owner 指定显示窗口后,自动刷新问题
在Directshow中,我们可以对render指定显示窗口,在写程序的过程中, 发现通过put_Owner设置的显示窗口存在自动刷新问题,譬如窗口被遮挡然后再次露出时,被遮挡部分不能自动刷新,需要拖 ...