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学习之-面向对象的更多相关文章

  1. 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用

    垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...

  2. 0028 Java学习笔记-面向对象-Lambda表达式

    匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...

  3. 0025 Java学习笔记-面向对象-final修饰符、不可变类

    final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...

  4. 0013 Java学习笔记-面向对象-static、静态变量、静态方法、静态块、单例类

    static可以修饰哪些成员 成员变量---可以修饰 构造方法---不可以 方法---可以修饰 初始化块---可以修饰 内部类(包括接口.枚举)---可以修饰 总的来说:静态成员不能访问非静态成员 静 ...

  5. C#学习笔记——面向对象、面向组件以及类型基础

    C#学习笔记——面向对象.面向组件以及类型基础 目录 一 面向对象与面向组件 二 基元类型与 new 操作 三 值类型与引用类型 四 类型转换 五 相等性与同一性 六 对象哈希码 一 面向对象与面向组 ...

  6. 前端学习:JS(面向对象)代码笔记

    前端学习:JS(面向对象)代码笔记 前端学习:JS面向对象知识学习(图解) 创建类和对象 创建对象方式1调用Object函数 <body> </body> <script ...

  7. Python学习之==>面向对象编程(二)

    一.类的特殊成员 我们在Python学习之==>面向对象编程(一)中已经介绍过了构造方法和析构方法,构造方法是在实例化时自动执行的方法,而析构方法是在实例被销毁的时候被执行,Python类成员中 ...

  8. canvas学习和面向对象(二)

    Canvas 学习(二) 上一篇Canvas 学习(一)中我是用canvas绘制了一些基本和组合的图形. 现在开始绘制图片和动画帧,以及面向对象的升级版本. 还是一样,看代码,所有的代码都托管在git ...

  9. Python学习一(面向对象和函数式编程)

    学习了一周的Python,虽然一本书还没看完但是也收获颇多,作为一个老码农竟然想起了曾经荒废好久的园子,写点东西当做是学习笔记吧 对Python的语法看的七七八八了,比较让我关注的还是他编程的思想,那 ...

随机推荐

  1. 【第三方SDK】百度地图实现最简单的定位功能(无地图界面)

    在近期的项目中,须要实现无地图界面的定位功能,定位用户所在的城市.因此,本篇文章,主要介绍怎样使用百度地图SDK实现无导航界面的定位功能. 1.申请百度开发人员账户 2.创建应用,获取key 例如以下 ...

  2. Android 开机动画源码分析

    Android系统在启动SystemServer进程时,通过两个阶段来启动系统所有服务,在第一阶段启动本地服务,如SurfaceFlinger,SensorService等,在第二阶段则启动一系列的J ...

  3. dreamvc框架(三),dispartcher做了些什么

    这一篇我会介绍一些dreamvc的核心类Dispatcher都做了些什么,首先我们先来看一看init方法,这是在DispatcherServlet和DispatcherFilter里面都会调用到的一个 ...

  4. 类之string类、Math类、DateTime类

    String类 string a = "abcdef123456"; 注:字符串的长度是从0开始计数的如:0,1,2,3,4,5,6,7,8,9........ a.Length; ...

  5. 一个库搞定各种分享--ShareSDK

    ShareSDK是为iOS.Android.WindowsPhone提供社会功能的一个组件,开发者只需10分钟即可集成到自己的APP中,它不仅支持分享给QQ好友.微信好友.微信朋友圈.新浪微博.腾迅微 ...

  6. ZOJ 3778 Talented Chef 模拟 [ 祝愿明天省赛一帆风顺, ZJSU_Bloom WILL WIN : )

    这题的意思是给你 n 道菜,第 i 道菜需要 Ai 步才能完成 每次你能对 m 道菜分别完成一步,请问最少需要几次? 这题暴力写肯定是不行的,去年省赛的时候就是没写出来这题,今天再把思路理一理吧. 首 ...

  7. 用C语言打印出三角函数

    在网上看到一个实例,是用C 中的* 打印出三角函数cos #include<stdio.h> #include<math.h> int main() { double y; i ...

  8. HDU ACM 1066 Last non-zero Digit in N!

    #include<iostream> using namespace std; int mod[20]={1,1,2,6,4,2,2,4,2,8,4,4,8,4,6,8,8,6,8,2}; ...

  9. Android跟蓝牙耳机建立连接有两种方式

    Android 跟蓝牙耳机建立连接有两种方式. 1. Android 主动跟蓝牙耳机连BluetoothSettings 中和蓝牙耳机配对上之后, BluetoothHeadsetService 会收 ...

  10. mysql事务和锁InnoDB(转)

    背景 MySQL/InnoDB的加锁分析,一直是一个比较困难的话题.我在工作过程中,经常会有同事咨询这方面的问题.同时,微博上也经常会收到MySQL锁相关的私信,让我帮助解决一些死锁的问题.本文,准备 ...