zoukankan      html  css  js  c++  java
  • PHP面向对象编程(imooc)代码合集(一)

      该课程内容属于PHP语言学习中的中级课程,只要有基本的php语法基础,四小时内上完这门课程绰绰有余。学习PHP面向对象编程,为我们进一步学习更高级的课程打下基础,如后台框架、微信后台的二次开发的学习等等。

      课程链接:《PHP面向对象高级实践》

      以下是课程的基本内容:

      继承、访问控制、Static(静态)关键字、重写、Final关键字、数据访问深入探讨、接口多态和抽象类。

      下面用实例代码加以叙述,并打有详细注释,方便初学者学习。

           第一篇主要是用一个NBA球星的类加以阐述类的定义和实例化,通俗易懂,包括NBA球星的一般属性(包括打球的一些动作)、静态属性等

    class01:类、对象的定义,类的实例化

     1 <?php
     2 date_default_timezone_set("PRC");
     3 /**
     4  * 1. 类的定义以class关键字开始,后面跟着这个类的名称。类的名称命名通常每个单词的第一个字母大写。
     5  * 2. 定义类的属性
     6  * 3. 定义类的方法
     7  * 4. 实例化类的对象
     8  * 5. 使用对象的属性和方法
     9  */
    10 class NbaPlayer
    11 {
    12     // 类的属性的定义
    13     public $name="Jordan";// 定义属性
    14     public $height="198cm";
    15     public $weight="98kg";
    16     public $team="Bull";
    17     public $playerNumber="23";
    18 
    19     // 类的方法的定义
    20     public function run() {
    21         echo "Running
    ";
    22     }
    23 
    24     public function jump(){
    25         echo "Jumping
    ";
    26     }
    27     public function dribble(){
    28         echo "Dribbling
    ";
    29     }
    30     public function shoot(){
    31         echo "Shooting
    ";
    32     }
    33     public function dunk(){
    34         echo "Dunking
    ";
    35     }
    36     public function pass(){
    37         echo "Passing
    ";
    38     }
    39 }
    40 
    41 /**
    42  * 1. 类实例化为对象时使用new关键字,new之后紧跟类的名称和一对括号。
    43  * 2. 使用对象可以像使用其他值一样进行赋值操作
    44  */
    45 $jordan = new NbaPlayer();
    46 // 访问对象的属性使用的语法是->符号,后面跟着属性的名称
    47 echo $jordan->name."
    ";
    48 // 调用对象的某个方法使用的语法是->符号,后面跟着方法的名称和一对括号
    49 $jordan->run();
    50 $jordan->pass();
    51 
    52 ?>

    class02构造函数与析构函数

    <?php
    date_default_timezone_set("PRC");
    /**
     * 1. 构造函数
     * 2. 析构函数
     */
    class NbaPlayer
    {
        // 类的属性的定义
        public $name="Jordan";// 定义属性
        public $height="198cm";
        public $weight="98kg";
        public $team="Bull";
        public $playerNumber="23";
    
        // 默认的构造函数,在对象被实例化的时候自动调用
        /*function __construct() {
           print "In NbaPlayer constructor
    ";
        }*/
    
        // 构造函数通常用于初始化对象的属性值
        function __construct($name, $height, $weight, $team, $playerNumber) {
            print $name . ";" . $height . ";" . $weight . ";" . $team . ";" . $playerNumber."
    ";
           $this->name = $name; // $this是php里面的伪变量,表示对象自身
           $this->height = $height; // 通过$this可以设置对象的属性值
           $this->weight = $weight;
           $this->team = $team;
           $this->playerNumber = $playerNumber;
        }
    
        // 析构函数,用于清理程序中使用的系统资源,比如释放打开的文件等等
        // 析构函数在该对象不会再被使用的情况下自动调用
        function __destruct() {
           print "Destroying " . $this->name . "
    ";
        }
    
        // 类的方法的定义
        public function run() {
            echo "Running
    ";
        }
    
        public function jump(){
            echo "Jumping
    ";
        }
        public function dribble(){
            echo "Dribbling
    ";
        }
        public function shoot(){
            echo "Shooting
    ";
        }
        public function dunk(){
            echo "Dunking
    ";
        }
        public function pass(){
            echo "Passing
    ";
        }
    }
    
    /**
     * 1. 类实例化为对象时使用new关键字,new之后紧跟类的名称和一对括号。
     * 2. 使用对象可以像使用其他值一样进行赋值操作
     */
    $jordan = new NbaPlayer("Jordan", "198cm", "98kg", "Bull", "23");
    // 访问对象的属性使用的语法是->符号,后面跟着属性的名称
    echo $jordan->name."
    ";
    // 调用对象的某个方法使用的语法是->符号,后面跟着方法的名称和一对括号
    $jordan->run();
    $jordan->pass();
    
    $james = new NbaPlayer("James", "203cm", "120kg", "Heat", "6");
    echo $james->name."
    ";
    // 当对象变量被赋值为Null的时候,对象的析构函数会被自动调用
    // 同一个类的其他对象不受影响
    $james = null; 
    echo "From now on James will not be used anymore.
    ";
    // 当程序执行结束时,所有类的对象的析构函数都会自动被调用
    ?>

    class03对象引用

    <?php
    date_default_timezone_set("PRC");
    /**
     * 1. 对象引用的概念:对象的引用是访问对象属性和方法的媒介
     * 2. 引用赋值会产生一个新的对象引用
     * 3. 使用&进行引用赋值不会产生新的引用,而是产生了引用的一个复制品
     * 4. 当指向对象的所有引用都被设为null时,对象的析构函数才被自动调用
     */
    class NbaPlayer
    {
        // 类的属性的定义
        public $name="Jordan";// 定义属性
        public $height="198cm";
        public $weight="98kg";
        public $team="Bull";
        public $playerNumber="23";
    
        // 默认的构造函数,在对象被实例化的时候自动调用
        /*function __construct() {
           print "In NbaPlayer constructor
    ";
        }*/
    
        // 构造函数通常用于初始化对象的属性值
        function __construct($name, $height, $weight, $team, $playerNumber) {
            print $name . ";" . $height . ";" . $weight . ";" . $team . ";" . $playerNumber."
    ";
           $this->name = $name; // $this是php里面的伪变量,表示对象自身
           $this->height = $height; // 通过$this可以设置对象的属性值
           $this->weight = $weight;
           $this->team = $team;
           $this->playerNumber = $playerNumber;
        }
    
        // 析构函数,用于清理程序中使用的系统资源,比如释放打开的文件等等
        // 析构函数在该对象不会再被使用的情况下自动调用
        function __destruct() {
           print "Destroying " . $this->name . "
    ";
        }
    
        // 类的方法的定义
        public function run() {
            echo "Running
    ";
        }
    
        public function jump(){
            echo "Jumping
    ";
        }
        public function dribble(){
            echo "Dribbling
    ";
        }
        public function shoot(){
            echo "Shooting
    ";
        }
        public function dunk(){
            echo "Dunking
    ";
        }
        public function pass(){
            echo "Passing
    ";
        }
    }
    
    /**
     * 1. 类实例化为对象时使用new关键字,new之后紧跟类的名称和一对括号。
     * 2. 使用对象可以像使用其他值一样进行赋值操作
     */
    $jordan = new NbaPlayer("Jordan", "198cm", "98kg", "Bull", "23");
    // 访问对象的属性使用的语法是->符号,后面跟着属性的名称
    echo $jordan->name."
    ";
    // 调用对象的某个方法使用的语法是->符号,后面跟着方法的名称和一对括号
    $jordan->run();
    $jordan->pass();
    
    $james = new NbaPlayer("James", "203cm", "120kg", "Heat", "6");
    echo $james->name."
    ";
    // 当对象变量被赋值为Null的时候,对象的析构函数会被自动调用
    // 同一个类的其他对象不受影响
    $james1 = $james; // 引用赋值操作会产生对象的一个新的引用,亦即定义了一个新的对象并初始化
    $james2 = &$james; // 使用&的引用赋值操作不会产生对象的一个新的引用,没有重新定义对象,只是用不同的变量名对同一个对象进行调用和管理
    $james = null; 
    echo "From now on James will not be used anymore.
    ";
    // 当程序执行结束时,所有类的对象的析构函数都会自动被调用
    
    ?>
  • 相关阅读:
    Junit初级编码(一)第一个Junit测试程序
    关于健身与健美
    spring入门(一)
    HTTP状态301、404、200、304分别表示什么意思
    预处理prepareStatement是怎么防止sql注入漏洞的?
    详解SESSION与COOKIE的区别
    Form表单中method为get和post的区别
    tomcat服务器配置及使用
    ubuntu 14.04 安装mysql server初级教程
    《电路学习第三天》 之 线性稳压电源的设计
  • 原文地址:https://www.cnblogs.com/construtora/p/5020990.html
Copyright © 2011-2022 走看看