zoukankan      html  css  js  c++  java
  • 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参数的类型不同

    多态

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

    运行多态

    编译多态

    编译多态就是重载

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

  • 相关阅读:
    Angular 项目打包之后,部署到服务器,刷新访问404解决方法
    C# yield return; yield break;
    C#获取枚举描述
    21、uwp UI自动化测试(WinAppDriver)
    20、uwp打包失败(All app package manifests in a bundle must declare the same values under the XPath *[local-name()='Package']/*[local-name()='Dependencies'])
    19、UWP 新特性(Creator Update)
    18、利用 Windows Device Portal 获取用户闪退 dump
    17、uwp 打包失败记录
    爱奇艺招聘uwp开发
    16、C++获取磁盘空间的方法
  • 原文地址:https://www.cnblogs.com/xiaohaihuaihuai/p/8251901.html
Copyright © 2011-2022 走看看