zoukankan      html  css  js  c++  java
  • PHP入门04 -- 面向对象程序设计

    一 、PHP实例化对象

      1、注意:在类的成员属性前面一定要有一个修饰词,如果不知道使用什么修饰词,就可以使用 var(关键字),如果一旦有其它的修饰词就不要有 var。

      2、只要是对象中的成员,就必须使用这个对象来访问到这个对象内部的属性和方法

      3、构造函数

        1、是对象创建完成之后,第一个自动调用的方法(特殊);

        2、方法名比较特殊,可以和类名相同名的方法名;

        3、给对象中的成员赋初始值使用的,传参方式

    <?php
            class BoyFriend {
                //变量(成员属性)
                var $name = "张三";
                var $age = 18;
                var $height = "175cm";
                var $sex;
                //构造方法: $this => 类本身;sex=>变量;$sex=>初始化参数、
                //一开始就会执行(自动执行),
                function BoyFriend($sex){
                    $this -> sex = $sex;
                }
                
                //函数(成员方法)    
                public function fnO($row, $cal){
                    return "功能一";
                }    
            }
    
            //使用类前必须先 new  
            $bf1 = new BoyFriend();
    
            //调用类中的参数:->sex 不需要加 $
            echo $bf1 -> sex."<br>"
            //调用类中的方法,需要传参数必须传
            echo $bf1 -> fnO("1", "2");
        ?>

      4、封装性是面向对象编程中的三大特性之一,封装就是把对象中的成员属性和成员方法加上访问修饰符,使其尽可能隐藏对象的内部细节,以达到对成员的访问控制(切记不是拒绝访问)

      5、public (公有的 默认的)、private   (私有的)、protected (受保护的)

      6、魔术方法

        __get() 

          1、自动调用,是在直接访问私有成员时,自动调用! 一个参数;(用于替代通用的set赋值方法)

        __set()
          2、自动调用,是在直接设置私有属性时,两个参数;(用于替代通用的get取值方法)

        __isset()  在是用 isset() 判断一个私有属性时否存在时,自动调用 __isset() 魔术方法,参数则是属性名称;(检测对象中成员属性是否存在)

        __unset()  ;(销毁对象中成员属性方法)

    二、类的继承性、扩展性

      1、子类使用  extends  继承父类  子类可以将父类中所有的内容继承过来;

      2、private:私有的, 只能类自己用,不能别人用,包括自己的子类也不能用;

      3、protected:保护的权限,只能是自己和自己的子类中可以使用的成员,不能再外面使用

      4、pulic: 公开的权限(默认),所有都可以,自己,子类,类外部都可以使用

        class Person {
            public $name;
            protected $age;
            protected $sex;
            //引入参数
            function __construct($name, $age, $sex) {
                $this->name = $name;
                $this->age = $age;
                $this->sex = $sex;
            }
            public function say() {
                echo "我的名子是:{$this->name},我的年龄是:{$this->age},我的性别是:{$this->sex}。<br>";
            }
            function eat() {
                echo "11111111111111<br>";
            }
            function run() {
            }
        }
        class Student extends Person{
            var $school;
            function study() {
            }
        }
        class Teacher extends  Student {
            var $gz;
            function jiao() {
                echo "我的名子是:{$this->name},我的年龄是:{$this->age},我的性别是:{$this->sex}。<br>";
            }
        }
    
        $t = new Teacher("高洛峰", 30, "男");
        $t -> jiao();
        echo $t->name;
  • 相关阅读:
    thrift java first demo
    找工作的一些感悟——前端小菜的成长
    常见标签的默认属性值及相互作用——关于CSS reset的思考
    CSS清浮动处理(Clear与BFC)
    简单JavaScript模版引擎优化
    最简单的JavaScript模板引擎
    JavaScript正则表达式下——相关方法
    JavaScript 正则表达式上——基本语法
    node.js调试
    node.js module初步理解
  • 原文地址:https://www.cnblogs.com/patriot/p/8550795.html
Copyright © 2011-2022 走看看