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

    一.类与对象

    面向对象:
    ①定义类
    class Dog
    {

    ②声明成员变量
    var $name;
    var $age;
    var $pinzhong;
    ③声明成员函数
    function Jiao()
    {
    echo "{$this->name}在叫";
    }
    }

    ④实例化对象
    $dog = new Dog();

    ⑤对象成员取值赋值

    $dog ->name;

    ⑥调用对象的成员:
    $dog->name = "旺财";
    $dog->Jiao();

    二:$this关键字

    $this 就是对象内部代表这个对象的引用

    echo "这个人叫:".$this->name;

    this代表该对象,如果要在成员方法中调用成员变量,一定要使用$this找出该成员变量

    三:构造函数:

    PHP5之前与类名一样,PHP5改成了__construct( )

    //定义方法
    function __construct($n,$a,$p)
    {
    $this->name = $n;
    $this->age = $a;
    $this->pinzhong = $p;
    }

    构造方法默认是共有的public

    重载: php由于是弱类型的语言,所以没有重载

     


    四:析构函数:

    function __destruct()
    {
    echo "拜拜";
    }

     


    五:封装:

     ①访问权限修饰符:private,public,protected
    ②将类里面的成员变量加一个private修饰符变成私有的,目的是为了保护类里面的成员不被外界随意访问,从而确保类的安全性。如果将变量设置为私有,如何去访问:
    1.自己写函数get函数set函数,然后来对变量赋值和取值
    2.用系统自带的__get()函数和__set()函数来实现类里面的变量赋值取值
    function __set($name,$value)
    {
    $this->$name = $value;
    }
    function __get($name)
    {
    return $this->$name;
    }

    ③只要是成员属性面前有其他的关键字就要去掉原有的关键字 var

    private $name;

    六:继承
    ①继承一般是单继承:一个儿子只能有一个父亲
    ②子类可以继承父类的所有成员
    ③子类可以对父类的成员方法进行重写:(函数名一样),如果要在子类方法中调用父类的方法,用parent:say()或Person::say();来实现调用父类的原方法

    parent::Jiao();
    function Jiao()
    {
    parent::Jiao();
    
    echo "hello";
    }

    子类中用相同的函数名即可覆盖

    function Say()
            {
                parent::Say();
                echo "子类中的方法";
            }
        }


    ④final关键字 可以定义该类为最终类,不可被继承

    ⑤静态:
    关键字:static ,如果成员声明了为静态的,那么该成员是属于该类的,不是属于对象的
              如何调用静态的成员:
    HaShiQi::$height = 10;
    HaShiQi::Gao();
    用类名加双冒号调用类的静态成员
    类里面取静态变量,不能用$this,所以用self

    ⑥const关键字

    const时一个定义常量的关键字

    在PHP中定义常量使用的是“define()”这个函数,但是在类里面定义常量使用的是“const”这个关键字

    赋值取值和静态一样

    七.多态

    多态的概念:父类引用指向子类的实例,由于子类的不同,所表现出的差别

    1.必须发生在继承下
    2.子类对父类的

    八. __toString的方法


    tostring只在类中出现,系统自带的方法 双下划线
    在输出对象时,返回这个对象的信息

    function __toString()
    {
    $this->name;
    }
    $ren = new Ren("aa");
    echo $ren;//输出此对象,否则要输出要写 var_dump($ren);

    ①写在类里

    ②要有return

    ③输出对象引用

    九.克隆对象

    class Ren
    {
        public $name;
        public $age = 10;
    
    }
    
        $ren = new Ren("aa");
        //克隆对象
        $r1 = clone $ren;//对象的复制
        var_dump ($r1);
        var_dump ($ren);

    十.自动加载类

    将类引入页面,加载类
    ① include("0322class.php");

    ② require_once("0322class.php");
    ③ include "0322class.php";
    ④ require_once "0322class.php";


    自动加载类
      function __autoload($classname)
    {
    require_once "class_".$classname . '.php';
    }

    文件名要求规范一致  eg:   class_name.php

  • 相关阅读:
    springmvc log4j 配置
    intellij idea maven springmvc 环境搭建
    spring,property not found on type
    intellij idea maven 工程生成可执行的jar
    device eth0 does not seem to be present, delaying initialization
    macos ssh host配置及免密登陆
    centos7 搭建 docker 环境
    通过rest接口获取自增id (twitter snowflake算法)
    微信小程序开发体验
    gitbook 制作 beego 参考手册
  • 原文地址:https://www.cnblogs.com/sjxx/p/5302701.html
Copyright © 2011-2022 走看看