zoukankan      html  css  js  c++  java
  • PHP 面向对象

    PHP 面向对象

    项目抽象出对象 实现对象 组成项目 将一个项目看成由多个对象组成

    面向过程,一个功能一个功能实现,以程序的执行过程

    面向对象多人合作,上手比较难。提高开发的效率。php简单好学。这是一个宣传?truefalse;(面向过程部分)

    OOP Object Oriented Programming

    OOA Object Oriented Analysls) 面向对象分许

    OOD Object Oriented Design)面向对象设计

    OOP-->所有事物全部被视为对象、代码的可重用、程序可维护性好、可扩展性高,灵活性高

    对象 由属性和方法组成

    具有相同属性和方法的抽象(集合)

    在程序中我们需要的是属性和方法来保存数据和执行逻辑,要调用属性和方法必须要有对象,要有对象必须先有类。

    开发顺序:类-->对象-->属性和方法

    php中实现类

    语法:class 类名{

    }

    类名不区分大小写

    命名法:

    帕斯卡命名法(大驼峰)首字母大写后面的单词首字母也大写 UserInfo

    骆驼命名法(小驼峰)首字母小写,后面单词的首字母大写或者每个单词都小写,中间用下划线连接 userInfo user_name

    匈牙利命名法 构成,变量类型+变量名字 iNumintfnShowfunctionsNamestringaStu(array)

    属性:public $name='李白';  //访问修饰符+变量名==属性

    方法:  function show(){

    echo '这是一个方法';  //访问修饰符+方法名

    }

    类:

    class Student{

    public $name='李白'; //访问修饰符+变量名==属性

    public $sex='';

    function show(){

    echo '这是一个方法';  //访问修饰符+方法名

    }

    }

    $stu1=new Student();

    //实例化一个对象,并且将这个对象保存到$stu1变量 $stu1object

    $stu2=new Student();

    //$stu1!=$stu2(不是同一个空间) 对象的本质还是变量

    //new 用来实例化对象

    //类实际上就是一种复杂的类型

    ?>

    调用属性:

    OOP中调用属性和方法,必须要有对象。

    echo $stu1->name,'<br>';//调用属性

    echo $stu1->show(),'<br>';//调用方法

    echo $stu2->name,'<br>';

    运行结果:

    给属性赋值:

    $stu1->name='tom';//给属性赋值

    $stu2->name='james';

    运行结果:

    增加删除属性:

    echo '<br>---------------增加属性------------------<br>';

    $stu1->add='北京';

    var_dump($stu1);

    echo '<br>---------------删除属性------------------<br>';

    unset($stu2->name);

    var_dump($stu2);

    运行结果:

     

    判断属性:

    echo '<br>---------------判断属性是否存在------------------<br>';

    var_dump(isset($stu1->name),isset($stu2->name));

    运行结果:

     

    深入理解:

    堆栈:指的就是内存(依次检索的)常用数据放在栈里面(比较小)堆中放置较大的数据,内存地址放在栈中。

    $stu1=new Student();

    Student()放在堆中,$stu1放在栈中 属于引用传递

     

    访问修饰符:

    Public 可以在类的内部和外部访问

    Private 只能在类的内部访问

    Protected 可以在类的内部和子类中访问(可以在整个继承链上访问)

    OOP中,属性一般都是私有的,我们通过公有的方法给他赋值取值;

    封装

    访问修饰符的作用就是用来做封装的;

    封装的目的是用来有选择性的提供数据和访问;

    构造方法:也叫构造函数,在实例化对象的时候自动执行;

    只要实例化一次就自动调用一次

    Public 可以省略,默认为public

    析构方法:也叫析构函数,当这个对象销毁的时候自动执行;

    如果我们实例化两个对象,谁先销毁呢?

    $stu=new Student('tom','');

    $stu->show();

    $stu2=new Student('james','');

    $stu2->show();

    由此图知,先销毁的是james 栈是先进后出;

    unset($stu); //销毁$stu

    $stu2=null;//销毁$stu2

    析构函数里面不允许有参数;

    继承

    具有层次性;

    子类继承了父类的属性和方法,实现了代码的可重用性;(私有属性也继承了,但是不能直接访问,没有权限使用)

    父类和子类具有相对性

    调用父类的属性和方法:通过$this

     

    如果子类没有构造函数,就调用父类的;

    如果子类有构造函数,那就调用自己的,父类的构造函数不被调用。

    通过parent或者类名调用父类的构造函数

    Parent指的就是父类的名字;new Person() new parent() 一样;

    子类给父类的构造函数赋值

    PhP不允许多重继承(C# java 都不行 C++可以)

    可以形成一个继承链来实现C继承B并且继承A

    $this

    $this 表示当前对象的引用;

    判断: $this 表示$this所在类的对象(错误)

    编辑过程中图片变的有点模糊了,有点影响阅读的效果。

  • 相关阅读:
    docker logs-查看docker容器日志
    初探 Elasticsearch,学习笔记第一讲
    Centos7 环境下设置固定IP
    强制使用索引查询方法
    linux 常用命令
    MySQL 调优
    docker 常用命令
    mysql 创建临时表
    mysql or in union all 使用方法
    mysql 创建存储过程
  • 原文地址:https://www.cnblogs.com/widows/p/8465869.html
Copyright © 2011-2022 走看看