• php面向对象三大特性


    ①封装

    封装的目的:为了让类更安全.

    <body>
    <?php
    class Ren{
    	public $name;
    	public $sex;
    	public $age;//如果不想在外界随便修改和访问这个变量,那就需要封装
    	}
    $r= new Ren();
    ?>
    </body>
    

    类的成员变量都要封装,封装的函数前面是public,

    封装的方法:

    1将成员变量全部变为private   (也就是私有的) 

    <body>
    <?php
    class Ren{
    	public $name;
    	public $sex;
    	private $age;
    	}
    $r= new Ren();
    ?>
    </body>
    

     2在类里面做一个成员方法来间接访问

    <body>
    <?php
    class Ren{
    	public $name;
    	public $sex;
    	private $age;
    	public function setage($age){
       }//用函数做一个成员方法
    }
    $r= new Ren();
    ?>
    </body>
    

    3在该方法里面加限制条件

    <body>
    <?php
    class Ren{
    	public $name;
    	public $sex;
    	private $age;
    	public function setage($age){
    		if($age>=18 && $age<=50){
    			$this->age=$age;
    			}
       }
    }
    $r= new Ren();
    $r->setage(20);
    var_dump($r);
    
    ?>
    </body>
    

    显示:

    魔术方法

    <body>
    <?php
    class Ren{
        public $name;
        public $sex;
        private $age;//public----private
        public function __set($name,$value){//$name变量名$value变量值
            if($name == "age"){
                if($value>=18&&$value<=50){
                    $this->$name = $value;
                }
            }
            else{
                $this->$name = $value;
                }
        }
    }
    $r = new Ren();
    $r->name = "张三";
    $r->age = 20;//自动调用__set
    var_dump($r)
    ?>
    </body>
    

    显示:

    继承

    概念:子类可以继承父类的一切

    特点:单继承  (一个子类只能有一个父类,一个父类可以有多个子类)

    <body>
    <?php
    class Ren{
    	public $name;
    	}
    class China extends Ren{//该类(china类继承自ren类),继承使用的关键字:extends.
    	}
    	$c= new China();
    	var_dump($c);
    ?>
    </body>
    

    显示:

    china对象里面是存在$name这个成员变量的,这个成员变量就是继承自ren类里面的.

    方法的重写

    <body>
    <?php
    class Ren{
    	function say(){
    		echo "人在讲话";
    		}
    	}
    class China extends Ren{
    	function say(){
    		echo "中国人在讲话";
    		}
    	}
    	$c= new China();
    	$c->say();	
    ?>
    </body>
    

    显示:

    parent关键字

    parent关键字在类里面代表的是父类,如果在子类重写的方法里面想要调用父类的方法,则需要使用关键字来调用.

    <body>
    <?php
    class Ren{
    	function say(){
    		echo "人在讲话";
    		}
    	}
    class China extends Ren{
    	function say(){
    		parent::say();
    		echo "中国人在讲话";
    		}
    	}
    	$c= new China();
    	$c->say();	
    ?>
    </body>
    

    显示:

    函数重写的名词:over ride

    重载的名词:over load

    重载目的:一个方法实现多个功能

    重载的条件:

    1方法名必须相同

    2参数的个数不同

    3参数的类型不同

    多态

    多态概念:当父类引用指向子类实例的时候,由于子类对父类的方法进行了重写,在调用该方法的时候所表现出的不同,我们称为多态.

    运行多态

    编译多态

    编译多态就是重载

    多态发生在编译的时候产生了不同就是重载

  • 相关阅读:
    csu1217: 奇数个的那个数
    小试SAS 判别分析
    bfs poj2965
    STL set常用操作
    csu1002 A+B(III)
    HDOJ 1002 的几种方法
    SQL知识积累
    CSV文件格式介绍
    ASP.net Web Form 知识积累
    C# 位域[flags] 枚举
  • 原文地址:https://www.cnblogs.com/xiaohaihuaihuai/p/8251901.html
Copyright © 2020-2023  润新知