首页 > 开发 > PHP > 正文

PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象

2024-05-04 22:52:46
字体:
来源:转载
供稿:网友

本文实例讲述了PHP面向对象的特性。分享给大家供大家参考,具体如下:

Demo1.php

<?php  header('Content-Type:text/html; charset=utf-8;');  //创建一个电脑类  class Computer {    //什么叫做类内,就是创建类的花括号内的范围叫做类内,其他地方则类外。    //public 是对字段的公有化,这个字段类外即可访问,赋值和取值    public $_name = '联想';  }  $computer = new Computer();  $computer -> _name = 'Dell';  echo $computer->_name;?>

Demo2.php

<?php  header('Content-Type:text/html; charset=utf-8;');  class Computer {    //private 是私有化,即对字段进行封装的操作,类外无法访问,取值和赋值都不能操作    private $_name = '联想';  }  $computer = new Computer();  echo $computer->_name;?>

Demo3.php

<?php  header('Content-Type:text/html; charset=utf-8;');  class Computer {    private $_name = '联想';    //这个时候我采用一个公共对外的方法来访问私有字段    //因为私有字段只能在类内访问,而对外的公共方法是类内的。    //更而公共方法又是公共的,所以类外又可访问。    public function _run(){      //字段在类内调用的时候必须是类 -> 字段,而$_name只是一个普通变量而已。      //字段在类外调用的方法是对象 -> 字段,而类内就必须使用 Computer -> _name      //但是在本类中,可以使用一个关键字来代替字来代替 Computer ,那就是 $this      echo $this ->_name;    }  }  $computer = new Computer();  $computer -> _run();?>

Demo4.php

<?php  header ( 'Content-Type:text/html; charset=utf-8;' );  class Computer {    private $name;    private $model;    private $cpu;    private $keyboard;    private $show;    private $zb;    //必须写个对外的入口,才可以取到    public function getName() {      return $this->name;    }    //必须写一个对内的入口,对私有字段进行赋值    public function setName($name) {      //这里的 $name 只是一个变量而已,参数而已      //$this->name 才是类的字段      $this->name = $name;    }  }  $computer = new Computer ();  echo $computer->getName();  $computer->setName('Dell');  echo $computer->getName();?>

Demo5.php

<?php  header ( 'Content-Type:text/html; charset=utf-8;' );  class Computer {    private $_name;    private $_model;    private $_cpu;    //当类外的对象直接调用私有字段时,会跟着去检查是否有拦截器,    //如果直接对 $_name 进行赋值,那么__set 方法就会拦截住,就不会报错了。    //采用拦截器进行赋值和取值    //赋值    private function __set($_key,$_value){      //采用$_key = '_name',那么 $_value = '联想';      //$this ->_name = '联想';      $this ->$_key = $_value;    }    //取值    private function __get($_key){      return $this -> $_key;      //如果 $_key = '_name' 那么 $this -> _name;      //如果 $_key = '_cpu' 那么 $this -> _cpu;      //如果 $_key = '_model' 那么 $this -> _model;    }  }  $computer = new Computer ();  $computer->_name = '联想';  $computer->_cpu = '四核';  $computer->_model = 'i7';  echo $computer->_name;  echo $computer->_cpu;  echo $computer->_model;?>            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表