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->Jiao();

    三:$this关键字
    $this->name;this代表该对象,如果要在成员方法中调用成员变量,一定要使用$this找出该成员变量

    四:构造函数:
    function __construct($n,$a,$p)
    {
    $this->name = $n;
    $this->age = $a;
    $this->pinzhong = $p;
    }
    五:析构函数:
    function __destruct()
    {
    echo "拜拜";
    }


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

    七:继承
    继承一般是单继承:一个儿子只能有一个父亲
    子类可以继承父类的所有成员
    子类可以对父类的成员方法进行重写:(函数名一样),如果要在子类方法中调用父类的方法,用parent::Jiao();
    function Jiao()
    {
    parent::Jiao();

    echo "hello";
    }
    final关键字可以定义该类为最终类,不可被继承

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



    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    </head>
    
    <body>
    
    <?php
        class Dog
        {
            private $name;
            private $age;
            private $pinzhong;
            
            function __construct($n,$a,$p)        //构造函数,两个下划线
            {
                $this->name=$n;
                $this->age=$a;
                $this->pinzhong =$p;
                }
            
            function SetName($n)
            {
                $this->name = $n; 
                }
                
            function SetAge($m)
            {
                if($m>=1 && $m<=5)
                {
                    $this->age =$m;
                    }
                
                }    
                
            
             function Jiao()
            {
                echo "{$this->name}在叫,它{$this->age}岁了"; //this代表该对象,如果要在成员方法中调用成员变量,一定要使用$this找出该成员变量
                
                }
                
                function __destruct()
            {
                echo "拜拜";
            }
    
    
            }
            
            
            
            $dog =new Dog("旺财",10,"金毛");
            
            $dog->SetName("小强");
            
            $dog->SetAge(3);
            
            $dog ->Jiao();
            
            
    
    
    ?>    
    </body>
    </html>
  • 相关阅读:
    进程和线程的区别?什么时候用进程?什么时候用线程?----看到好的复制到自己的园子里哈哈
    HTTPS详细讲解一篇就够了
    MySQL存储过程
    Spring注入全局的HttpServletRequest
    Java进阶必备
    Java8新特性
    java.time包常用类API学习记录
    Maven常用插件
    maven-dependency-versions-check-plugin, Maven 插件查找依赖版本冲突
    Jackson自定义注解
  • 原文地址:https://www.cnblogs.com/zhanghaozhe8462/p/5304687.html
Copyright © 2011-2022 走看看