1. 学习面向对象的目标:
  a) 语法的学习:
  b) 编程思想的学习:
    i. 过程化:
    ii. 面向对象:
2. 比较(有对象和没对象的区别)
  a) 没对象:
    i. 我饿了 自己做饭
    ii. 我渴了 自己烧水
    iii. 衣服脏了 自己去洗衣服
    iv. 空虚寂寞了 自己去玩LOL
  b) 有对象
    i. 我饿了 对象给我去做饭
    ii. 我渴了 对象给我去烧水
    iii. 我衣服脏了 对象给我去洗衣服
    iv. 我空虚寂寞了 对象和我一块玩LOL游戏
  c) 面向对象的核心,就是让对象帮我们去实现指定的功能
3. 对象:具有一定功能和特征的单个事物,称之为对象
  a) 对象是实际存在的一个事物
4. 类:具有相同功能和特征的对象的抽象,称之为类
5. 类和对象的关系:
  a) 类的实体化(实例化)就是一个对象
  b) 对象的抽象就是类
6. 类比:
  a) 马良 马良画的画 从画中走出来的人
  b) 程序员 类 对象
  c) 设计师 设计的图纸 由设计稿建造出来的建筑
7. 如何来声明一个类:(相当于正在设计图纸)
  a) 格式:class 类名{}
  b) 命名:首字母大写的驼峰命名法进行命名
  c) 标识符命名规则:字母、数字、下划线,首字母不能为数字,严格区分大小写,且不能使用关键字
  d) 声明成员属性:
    i. 注意:
      1. 必须给定成员修饰符(Public、Protected、Private)
      2. 成员属性的默认值(初始值)可以不给
      3. 成员属性赋初始值时
        a) 不能使用变量赋值
        b) 建议不要使用计算来给成员属性赋值
        c) 不能使用函数调用方式给成员属性赋值
      4. 变量的数据类型:
        a) 四种标量:整型、浮点型、字符串型、布尔型
        b) 两种复合:对象、数组
        c) 两种特殊:资源、null空
      5. 常量可以存放的数据类型:
        a) 4中标量类型和null空型
  e) 成员方法的声明:
    i. 注意
      1. 成员方法就是一个函数,在类当中我们称之为方法
      2. 跟成员属性的声明方式类似,成员方法,也需要给定一个成员修饰符(public、protected、private)
      3. 成员方法的参数是可有可无的
      4. 成员方法的返回值和代码体都是可有可无的!
      5. 函数在我们不指定return的时候,或者说,给定return但是后面没有值的情况下,返回的结果都是null
  f) 类当中只能存在成员属性和成员方法,之外的内容都会报错!
  g) 成员属性和成员方法的位置不固定,但是建议将成员属性写在前面
8. 对象的实例化:
  a) 格式:变量名 =new 类名()

   Object => 变量的类型
   (Meinv) => 类名
    [1] => 在当前脚本当中所实例化对象的索引号

 //声明一个美女类(相当于设计的过程)
class Meinv{ //特征 => 成员属性
public $name;
public $sex;
public $age=18;
public $tall; //功能 => 成员方法
public function eat(){
echo '我正在吃东西!';
} public function drink(){
echo '我正在喝东西';
} public function talk($someone){
echo '我正在和'.$someone.'说话!';
}
} //实例化(实体化)
$lingling = new Meinv(); //成员属性的操作
$lingling->name = '玲玲';
$lingling->sex = '女';
$lingling->age = 20;
$lingling->tall = 160.00; var_dump($lingling); //结果
object(Meinv)[1]
public 'name' => string '玲玲' (length=6)
public 'sex' => string '女' (length=3)
public 'age' => int 20
public 'tall' => float 160

  b) 注意:
    i. 类名后面的小括号可有可无,但是我们建议加上
    ii. 对象的实例化可以在类的声明之前,也可以在类的声明之后
    iii. 成员访问符: ->

 //声明一个手机类

 class Phone{

     //成员属性
public $brand;
public $size;
public $color; //成员方法
public function call($someone){
echo '我正在给'.$someone.'打电话<br/>';
} public function sendMessage($someone){
echo '我正在给'.$someone.'发短信<br/>';
} } //实例化类
$apple = new Phone(); //初始化成员属性信息
$apple->brand = '苹果';
$apple->size = '4.7inch';
$apple->color = '红色'; //进行成员属性的操作
//成员属性的添加
$apple->price = '5799元';
//成员属性的删除
// unset($apple->color);
//成员属性的修改
$apple->size = '5.5inch';
//成员属性的访问
echo $apple->brand; //苹果
echo $apple->size; //5.5inch
echo $apple->price; //5799元 //进行成员方法的操作
$apple->call('范冰冰'); //我正在给范冰冰打电话
$apple->sendMessage('李冰冰'); //我正在给李冰冰发短信

9. $this 特殊的变量
  a) 名字特殊
  b) 只能在类的内部当中的成员方法中使用
  c) $this 代表了正在访问当前方法的对象
10. 构造方法:
  a) 本质:也是一个成员方法,是一个特殊的成员方法
  b) 名字:__construct、和类名同名的方法都属于构造方法,我们推荐使用__construct;
  c) 执行场景:当我们实例化一个类时,会自动调用__construct方法
  d) 作用:初始化对象
11. 析构方法:
  a) 本质:也是一个成员方法,是一个特殊的成员方法
  b) 名字:__destruct
  c) 执行场景:当我们对象被销毁的时候,自动执行

 //声明一个汽车类
class car{ //成员属性
public $brand;
public $type;
public $price; //成员方法
public function __construct($brand,$type,$price){
//给成员属性赋值
$this->brand = $brand;
$this->type = $type;
$this->price = $price; echo $this->brand.'创建<br/>';
} public function drive(){
echo '我正在开车,么么哒!!';
} public function carry($someone){
echo '我正在载着'.$someone.'找女朋友!';
} //析构方法,当我们的脚本执行完毕时会自动执行
public function __destruct(){
echo $this->brand.'销毁<br/>';
} } //实例化一个奔驰车
$benz = new car('奔驰','越野','200w'); $baoma = new car('宝马','敞篷','180w'); //结果
奔驰创建
宝马创建
宝马销毁
奔驰销毁


【php】面向对象(一)的更多相关文章

  1. angular2系列教程(六)两种pipe:函数式编程与面向对象编程

    今天,我们要讲的是angualr2的pipe这个知识点. 例子

  2. 一起学 Java(二)面向对象

    一.方法函数 函数也称为方法,就是定义在类中的具有特定功能的一段独立代码.用于定义功能,提高代码的复用性. 函数的特点1> 定义函数可以将功能代码进行封装,便于对该功能进行复用:2> 函数 ...

  3. js面向对象学习 - 对象概念及创建对象

    原文地址:js面向对象学习笔记 一.对象概念 对象是什么?对象是“无序属性的集合,其属性可以包括基本值,对象或者函数”.也就是一组名值对的无序集合. 对象的特性(不可直接访问),也就是属性包含两种,数 ...

  4. 前端开发:面向对象与javascript中的面向对象实现(二)构造函数与原型

    前端开发:面向对象与javascript中的面向对象实现(二)构造函数与原型 前言(题外话): 有人说拖延症是一个绝症,哎呀治不好了.先不说这是一个每个人都多多少少会有的,也不管它究竟对生活有多么大的 ...

  5. .NET 基础 一步步 一幕幕[面向对象之对象和类]

    对象和类 本篇正式进入面向对象的知识点简述: 何为对象,佛曰:一花一世界,一木一浮生,一草一天堂,一叶一如来,一砂一极乐,一方一净土,一笑一尘缘,一念一清静.可见"万物皆对象". ...

  6. 简单分析JavaScript中的面向对象

    初学JavaScript的时候有人会认为JavaScript不是一门面向对象的语言,因为JS是没有类的概念的,但是这并不代表JavaScript没有对象的存在,而且JavaScript也提供了其它的方 ...

  7. Java程序员应该了解的10个面向对象设计原则

    面向对象设计原则: 是OOPS(Object-Oriented Programming System,面向对象的程序设计系统)编程的核心,但大多数Java程序员追逐像Singleton.Decorat ...

  8. JavaScript学习笔记(三)——this、原型、javascript面向对象

    一.this 在JavaScript中this表示:谁调用它,this就是谁. JavaScript是由对象组成的,一切皆为对象,万物皆为对象.this是一个动态的对象,根据调用的对象不同而发生变化, ...

  9. 带你一分钟理解闭包--js面向对象编程

    上一篇<简单粗暴地理解js原型链--js面向对象编程>没想到能攒到这么多赞,实属意外.分享是个好事情,尤其是分享自己的学习感悟.所以网上关于原型链.闭包.作用域等文章多如牛毛,很多文章写得 ...

  10. .NET基础拾遗(2)面向对象的实现和异常的处理基础

    Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理基础 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开 ...

随机推荐

  1. 项目测试中发现产品bug怎么办

    我所在的产品线,并非公司最大最强的产品 甚至为了推广我们这个产品,一般会拿给客户先免费试用 而在试用之前,是要经过一番通测的,测得很急,测得很快 所以产品bug非常多 那么在测试项目的时候,自然会发现 ...

  2. 转:标签中的href如何调用js

      在HTML中,<a>标签的href属性用于指定超链接的目标的URL.在所有浏览器中,链接的默认外观是: 未被访问的链接带有下划线而且是蓝色的 已被访问的链接带有下划线而且是紫色的 活动 ...

  3. 使用form 表单 弹出登录框,只传递数据,不刷新界面

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. (转)协议森林04 地址耗尽危机 (IPv4与IPv6地址)

    协议森林04 地址耗尽危机 (IPv4与IPv6地址) 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! IP地址是IP协议的重要组 ...

  5. (转)浅析epoll-为何多路复用I/O要使用epoll

    原文地址:http://www.cppfans.org/1417.html 浅析epoll-为何多路复用I/O要使用epoll 现如今,网络通讯中用epoll(linux)和IOCP(windows) ...

  6. 动态表单数据验证 vue

    idCard: [{ validator: (rule, value, callback) => { if (this.idCardVif === 'idCard') { this.valida ...

  7. react 给选中的li添加样式(转载)

    路:使用事件委托,关键:获取到的index必须转为数字,因为它是字符串 handleClick = (e) => { const nodeName = e.target.nodeName.toU ...

  8. MySql锁与InnoDB引擎

    MySql锁与InnoDB引擎 mysql的锁是面试中很高频问题,也是我们在日常开发中经常会遇到但是我们并没有注意到的地方.我把我自己理解的锁通过本篇博文分享出来,由于锁需要结合事务来理解,本文只介绍 ...

  9. Scikit-Learn 源码研读 (第二期)基类的实现细节

    目录 BaseEstimator `get_params` `set_params` ClassifierMixin RegressorMixin 检查传入的对象 检查样本数和权重系数 实现$R^2$ ...

  10. vmware导入ova文件踩坑记

    问题来源 众所周知,所有的网络行为都会产生相应的网络流量,那么所有的网络攻击行为也有其对应的流量特点,那么是否能根据流量特点进而分析出其对应的是什么攻击行为呢? 我在虚拟机上使用vulnhub的靶场环 ...