博主信息
超超多喝水
博文
38
粉丝
0
评论
0
访问量
2645
积分:0
P豆:76

面向对象编程(oop)初体验

2021年08月12日 23:56:10阅读数:114博客 / 超超多喝水/ PHP学习

一、类

类是一个具有相同属性和方法的集合,类成员属性就类似于普通的php变量,类成员方法类似于普通的php函数。

如:NBA球员都是一类,有姓名、身高、球队、球号、体重等属性,还会跑步、投篮等方法,可以把这些属性跟方法放到一个集合,如:

<?php
//定义一个Player类
class Player{
    //定义类的属性
    public $name;
    public $height;
    public $team;
    protected $playNum = 23;
    private $weight;
    //定义类的方法 方法这里public标识不是必须的 但是一般还是建议加上,不加默认是public标识
    public function jog()
    {
        //$this 特殊对象引用 永远代表本对象 总与当前对象做一个绑定 属于墙头草 谁调用他往谁那里倒
        return "$this->name is jogging,whose playNum is $this->playNum";
    }
    public function shoot()
    {
        return "$this->name is shooting";
    }
}

?>

以上内容中,public代表可公开访问,protected 表示本类跟其子类可访问,private 表示只有本类可以访问,子类跟其他都无法访问。

二、对象及oop的封装性

对象是类实例化的产物,定义好一个类以后,就可以使用new关键字实例化一个类,然后可以赋给一个变量即对象引用。所谓封装性就是使用者不必要了解内部细节及实现原理,将类封装起来,隐藏属性或方法(隐藏实现的细节)使其不对外可见,使用者直接使用就可以,目的是为了控制在程序中属性的读写(读取或者修改)的访问级别,使用者只需要通过外部接口以特定的权限来使用类成员

//实例化一个对象,赋值给$j这个变量,这里就是Player这个类已经做好了封装,$j直接去使用
$j = new Player;
//使用->访问符号访问对象里的属性或者方法,也可以后面加=给其进行赋值,还需要注意访问的时候去掉$符号
$j->name = "Jordan";
//方法同理
$j->jog();

三、构造函数(构造器)与类的简单自动加载

构造函数(构造器)是一个魔术方法__construct(),除可以给public标识的属性初始化赋值外,还可以给protected、private标识的属性赋值,如最开始的文件中这些内容可以用构造器处理:

    //声明一个构造器并将所有的属性加进去 初始化类成员 让类的状态稳定下来
    public function __construct($name,$height,$team,$playNum,$weight){
        $this->name = $name;
        $this->height = $height;
        $this->team = $team;
        $this->playNum = $playNum;
        $this->weight = $weight;
    }

然后可以将shoot()方法进行改进,调用$weight:

public function shoot()
    {
            //尝试将weight属性加进去
        return "$this->name is shooting,weighing $this->weight<br>";
    }

重新实例化对象,并进行调用,这里还需要注意,使用__construct()以后,__construct()中有几个参数,调用这个类的时候就需要往里面传几个参数:

//重新将类进行实例化,并将参数按__construct()的要求传入
$jordan = new Player('Jordan','203cm','Bulk',23,'80kg');
//输出访问上面的shoot方法返回的内容
echo $jordan->shoot();

在类没有自动加载的情况下,可以用require语句调用一个类文件

如:

require 'Player.php';

但是如果有多个类需要调用的时候就会很麻烦,这个时候可以用spl_autoload_register()声明一个匿名函数做一个简单的自动加载,下面以类跟需要调用的文件在同一文件夹下为例:

 //使用spl_autoload_register()声明一个匿名函数,并将类的名称作为参数传入,这里需要注意,类名称需要跟文件的名称保持一致
 spl_autoload_register(function($className){
       //调用类名称.php的文件
    require $className .'php';
 })
批改老师:PHPzhongPHPzhong

批改状态:合格

老师批语:

版权申明:本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!

全部评论

文明上网理性发言,请遵守新闻评论服务协议

条评论
  • OOP)是我们的一项基本技能,PHP5OOP提供了良好的支持。如何使用OOP的思想来进行PHP的高级于提高PHP能力和规划好Web开发构架都是非常有意义的。
    OOP思想指的是强调的“抽”、“封装”、“继承”、“多态”,相比该思想专注于通过的一些方法去解决问题,不同的功能可能由不同的来负责解决。
    spring aop原理:1、AOP ,是一种范式,提供从另一个角度来考虑序结构以完善OOP;2、AOP为开发者提供了一种描述横切关注点的机制,并能够自动将横切关注点织入到的软件系统中
    java语言是一种序设计语言。
    区别有:JavaScript是轻量级的解释性脚本语言,能够实现浏览器端丰富的交互功能,为用户带来流畅多样的用户;TypeScript是 语言,包含JavaScript所有元素,并扩展了
    php实例化是指在中,把用类创建的过称为实例化,是将一个抽的概念类,具到该类实物的过,实例化过中一般由【类名 名 = new 类名(参数1,参数2...参数n)】构成。
    python是Google的吉多·范罗苏姆设计的,Python是一种跨平台的计算机序设计语言。作为一种的动态类型语言,它最设计用于写自动化脚本。
    Python由荷兰数学和计算机科学研究学会的Guido van Rossum于1990年代设计,作为一门叫做ABC语言的替代品;Python提供了高效的高级数据结构,还能简单有效地;目前Python
    控制反转是中的一种设计原则,可以用来减低计算机代码之间的耦合度,还可以通过控制反转,让在被创建的时候,由一个调控系统内所有的外界实将其所依赖的的引用传递给它。
    c语言和python的区别是:1、Python是一种的解释型语言,通过缩进来表示语句,在Python中每一条语句结尾后没有分号;2、C是一种译型语言,通过“{}”来表示语句,C语言中每一条语句需以英文分号结尾
    数字媒应用技术专业需要学习摄影摄像技术、交互式多媒网站开发、艺术设计基础、序设计(java)、动画设计与制作、3D造型、电视节目导与制作、音视频信息处理、特效制作与非线性辑等。
    Python代码是一种计算机序设计语言,是一种动态的、的脚本语言,最是用来写自动化脚本的,随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。
    Python是一种跨平台的计算机序设计语言,是一个高层次的结合了解释性、译性、互动性和的脚本语言。

    2020-07-27

    1979

    Python是一种跨平台的计算机序设计语言,是一个高层次的结合了解释性、译性、互动性和的脚本语言,最被设计用于写自动化脚本,随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发
    高级语言是一种独立于机器,的语言;它并不是特指的某一种具的语言,而是包括很多语言,如流行的java,c,c++,C#,pascal,python,lisp,prolog,FoxPro
    C语言结构是一种构造数据类型,也可以称作复杂数据类型,由若干不同类型的变量组成,每个变量都是结构的成员,每个成员可以是基本数据类型,也可以是构造类型,与中类差不多,只是没有成员方法。
    本文讲述了PHP具的安装过及相关说明,PHP是一种运行在服务端的开源,解释和的脚本语言。由于是解释型语言、不需要译,因此比其他语言写脚本更快。