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

  • 相关阅读:
    Pro*C,oci,occi的作用以及区别联系?
    图片缩放 剪切
    去除DataGridView选中行背景色的方法
    重写DataGridView的sort方法 自定义排序
    很好用的js日历 kimsoftjscalendar 感谢KimSoft
    计时器例子
    gcc与g++有什么区别?
    VB.NET全角半角check
    Java 集合框架(Collection)和数组的排序
    Click Models for Web Search(1) Basic Click Models
  • 原文地址:https://www.cnblogs.com/sjxx/p/5302701.html
Copyright © 2011-2022 走看看