zoukankan      html  css  js  c++  java
  • 基础知识

    一、面向对象

      1、面向对象的学习

        1)语法的学习

          OOP(面向对象的编程)

        2)思想的学习

          OOA(面向对象的分析)

          OOD(面向对象的设计)

      2、什么是面向对象

        1)操作对象

        2)从程序的执行者变成了程序的管理者

      3、什么是对象

        1)万物皆对象

        2)实实在在的一个独立个体

      4、面向对象的目标

        1)解决面向过程的缺陷(包括:代码冗余较大、不利于协同开发、开发效率极低、代码维护困难、程序的扩展性差)

        2)达到高可扩展性、高可重用性、高灵活性、高内聚(内部联系)、低耦合(外部联系)

      5、面向对象的特点

        封装、继承、多态

      6、对象的组成

        1)成员属性(描述)

        2)成员方法(功能、行为)

    二、类

      1、什么是类

        类是具有相同属性和相同行为的对象的一类总称

      2、类和对象的关系

        1)先有类,再有对象

        2)类是用来描述对象的

        3)类是对象的抽象化

        4)对象是类的实例化

      3、类的组成部分

        成员属性(一个成员属性就是一个变量)

        成员方法(一个成员方法就是一个函数)

      4、如何声明一个类

        1)简单格式:

          class 类名{

            [成员属性]  //也叫成员变量

            [成员方法]  //也叫成员函数

          }

        2)完整格式:

          class 类名 [extends 父类] [implements 接口1[,接口2...]]{

            [成员属性]

            [成员方法]

          }

        类的声明需要注意的:

          1.成员属性的声明,属性前必须要有修饰符

            修饰符 $变量名[=默认值];

            常用属性修饰符:publicprotectedprivatestaticvar

          2.成员属性可以不给默认值

          3.成员属性就是一个变量,其默认值不可以是另一个变量名、带运算符的表达式、方法或函数调用

            public $var1=1+2;  //错误格式

            public $var2=self::myStaticMethod();  //错误格式

            public $var3=$var4;  //错误格式

          4.成员方法的声明,可以没有修饰符,也可以没有返回值

            [修饰符] function 方法名(参数1,...){

              [方法体]

              [return 返回值]

            }

            修饰符:publicprotectedprivatestaticabstractfinal

          5.成员方法就是一个函数,必须和对象相关不能是一些无意义的操作

    三、通过类实例化对象

      1、对象的实例化

        1)需要通过类来进行实例化对象:

          $对象名称=new 类名称();

          $对象名称=new 类名称([参数1,...]);

        2)成员属性和成员方法都必须藉由该对象来进行访问、调用

        3)对象的访问须使用 -> 来访问

        4)类的名称不区分大小写

        5)类可以在任意位置调用

          例:     

        class Person{
            //[成员属性]
            //姓名
            var $name;
            //性别
            var $sex;
            //年龄
            var $age;
    
            //[成员方法]
            //吃饭
            function eat(){
                echo "爱吃肉";
            }
            //睡觉
            function sleeep(){
                echo "爱睡懒觉";
            }
            //说话
            function speak(){
                echo "不爱BB";
            }
    
        }
    
    
        $person=new Person;
        $person->name="autumn";
        $person->sex="X";
        $person->age=25;
    
        echo "<pre>";
        var_dump($person);
        echo "</pre>";
    
        echo $person->name.$person->sex.$person->age.$person->eat().$person->sleeep().$person->speak();
    object(Person)#1 (3) {
      ["name"]=>
      string(6) "autumn"
      ["sex"]=>
      string(1) "X"
      ["age"]=>
      int(25)
    }
    
    爱吃肉爱睡懒觉不爱BBautumnX25

      2、$this 关键字

        1)$this就代表本对象

        2)$this只能在类的内部去使用

        3)$this可以在类中调用本对象自己的成员属性和成员方法

        4)在类的内部的多个成员方法中利用“return $this;”即可实现链式操作

          例1:

    class Person{
        //[成员属性]
        //姓名
        var $name;
        //性别
        var $sex;
        //年龄
        var $age;
    
        //[成员方法]
        function info(){
            echo "姓名:".$this->name."性别:".$this->sex."年龄:".$this->age;
        }
    }
    
    
    $p1=new Person;
    $p1->name="admin1";
    $p1->sex="男";
    $p1->age=20;
    $p1->info();
    
    echo "<hr>";
    
    $p2=new Person;
    $p2->name="admin2";
    $p2->sex="女";
    $p2->age=25;
    $p2->info();
    
    echo "<hr>";
    
    $p3=new Person;
    $p3->name="admin3";
    $p3->sex="男";
    $p3->age=30;
    $p3->info();

    姓名:admin1性别:男年龄:20


    姓名:admin2性别:女年龄:25


    姓名:admin3性别:男年龄:30

          例2:  

    class Person{
        //[成员属性]
        //姓名
        var $name;
        //性别
        var $sex;
        //年龄
        var $age;
    
        //[成员方法]
        function eat(){
            echo "吃晚饭";
            return $this;
        }
        function speak(){
            echo "不爱BB";
            return $this;
        }
        function sleeep(){
            echo "上床睡觉";
            return $this;
        }
        function offlights(){
            echo "关灯";
            $this->speak();
        }
    }
    
    $person=new Person;
    
    $person->eat()->speak()->sleeep()->offlights();

    吃晚饭不爱BB上床睡觉关灯不爱BB

      3、构造方法

        方法一:

          方法名称与类名称相同的方法,PHP4及以下版本仅支持此方法:

          class 类名{

            [成员属性]

            [成员方法]

            function 与类名相同([参数1,...]){

            }

          }

        方法二:

          __construct 替代方法名称,PHP5及以上版本新增,系统会默认优先选择此方法,推荐使用

          class 类名{

            [成员属性]

            [成员方法]

            function __construct([参数1,...]){

            }

          }

        参数:不定

        触发时机:当对象new实例化的一瞬间自动调用这个方法

        作用:对成员进行初始化操作

        例:

    class Person{
        //[成员属性]
        //姓名
        var $name;
        //性别
        var $sex;
        //年龄
        var $age;
    
        //[成员方法]
        //PHP4及以下版本支持
        function Person($name,$sex,$age){
            $this->name=$name;  //对成员属性$name进行赋值
            $this->sex=$sex;  //对成员属性$sex进行赋值
            $this->age=$age;  //对成员属性$age进行赋值
            echo "姓名:".$this->name.";性别:".$this->sex.";年龄:".$this->age.";";
        }
    
        //PHP5及以上版本支持,系统默认优先选择此方法
        function __construct($name,$sex,$age){
            $this->name=$name;  //对成员属性$name进行赋值
            $this->sex=$sex;  //对成员属性$sex进行赋值
            $this->age=$age;  //对成员属性$age进行赋值
            echo "姓名:".$this->name.";性别:".$this->sex.";年龄:".$this->age.";";
        }
    }
    
    $person=new Person("autumn","男",25);

      4、析构方法

        方法:__destruct 替代方法名称

          class 类名{

            [成员属性]

            [成员方法]

            function __destruct(){

            }

          }

        参数:无

        触发时机:当对象销毁的一瞬间自动调用析构方法

        作用:做程序的后续操作,如关闭文件、释放结果集等

        例: 

    class Person{
        //[成员属性]
        //姓名
        var $name;
        //性别
        var $sex;
        //年龄
        var $age;
    
        //[成员方法]
        function __construct($name,$sex,$age){
            $this->name=$name;  //对成员属性$name进行赋值
            $this->sex=$sex;  //对成员属性$sex进行赋值
            $this->age=$age;  //对成员属性$age进行赋值
            echo "姓名:".$this->name.";性别:".$this->sex.";年龄:".$this->age.";";
        }
    
        //在对象被销毁的一瞬间自动调用析构方法
        function __destruct(){
            echo $this->name." 被析构啦!<br>";
        }
    }
    
    //先实例化的对象,其对应的保存变量在栈中先入栈,销毁时后入栈的先销毁
    //对应的,后实例化对象先调用析构
    $p1=new Person("admin01","男",20);
    echo "<br>";
    $p2=new Person("admin02","女",25);
    echo "<br>";
    $p3=new Person("admin03","男",30);
    echo "<br>";

    姓名:admin01;性别:男;年龄:20;
    姓名:admin02;性别:女;年龄:25;
    姓名:admin03;性别:男;年龄:30;
    admin03 被析构啦!
    admin02 被析构啦!
    admin01 被析构啦!

  • 相关阅读:
    PyDev for eclipse 插件下载地址
    Impala SQL 语言元素(翻译)[转载]
    oracle9i-11.2安装包及补丁包下载链接
    oracle link的创建过程
    Oracle 查询历史数据(转帖)
    Alpha、Beta、RC、GA版本的区别
    oracle wm_concat(column)函数的使用
    Quest.Central.for.DB2.v5.0.2.4下载地址
    Hadoop 管理工具HUE配置-初始配置
    maven编译下载源码
  • 原文地址:https://www.cnblogs.com/zhouwanqiu/p/9409488.html
Copyright © 2011-2022 走看看