• php面向对象的特性:OOP的封装


    字段的作用域:

      1.public 公共的(类外可以访问)

      2.private 私有的(只能类内访问)

      3.protected 受保护的(类内和子类可以访问,类外无法访问)

     1 /*通过公共的方法来访问私有字段*/
     2 class Computer{
     3     //类的私有字段(成员)
     4     private $_name="联想";
     5     private $_model = "z470";
     6     
     7     //通过公共方法来访问私有字段
     8     public function _run(){    
     9         echo $this->_name;
    10     }
    11 }
    12 
    13 $compter = new Computer();
    14 $compter->_run();  //输出值:联想

      如果有10个字段的话怎么办?

     1 class Computer{
     2     //类的私有字段(成员)
     3     private $_name;
     4     private $_model;
     5     private $_price;
     6     
     7     //给所有字段赋值
     8     function __set($_key,$_value){
     9         $this->$_key = $_value;        
    10     }
    11     
    12     //所有字段的取值在这里运行
    13     function __get($_value){
    14         return $this->$_value;
    15     }
    16     
    17     
    18 }
    19 
    20 $compter = new Computer();
    21 $compter->_name = "联想";
    22 $compter->_model = "z470";
    23 $compter->_price = "5000";
    24 
    25 echo $compter->_name;    //输出值:联想
    26 echo $compter->_model;     //输出值:z470
    27 echo $compter->_price;     //输出值:5000

    方法私有:类中的有些方法并不需要对外公开,只是里面运作的一部分,这时候应该将方法也封装起来。

     1 class Computer{
     2     
     3     //类的成员
     4     private $_name;
     5     private $_model;
     6     
     7     //私有方法
     8     private function getEcho(){
     9         echo '我是私有化的方法';
    10     }
    11     
    12     //公共方法一般是对外的入口
    13     public function run(){
    14         $this->getEcho();
    15     }    
    16     
    17 }
    18 
    19 $com = new Computer();
    20 $com->run();        //输出值:我是私有化的方法
  • 相关阅读:
    [WC2011]最大XOR和路径 线性基
    线段树分裂合并
    [NOIp2016]天天爱跑步 线段树合并
    CF1111E Tree 树链剖分,DP
    [NOI2016]区间 线段树
    [IOI2018] werewolf 狼人 kruskal重构树,主席树
    [CQOI2012]组装 贪心
    [ONTAK2010]Peaks kruskal重构树,主席树
    [NOI2018]归程 kruskal重构树
    kruskal重构树
  • 原文地址:https://www.cnblogs.com/changshaoshuai/p/3284785.html
Copyright © 2020-2023  润新知