程序人生

不经历风雨怎么见彩虹!明天将更好!!!

php5 面向对像学习手扎

 1.php5中三种数据类型的区别
public: 公有类型
    在子类中可以通过self::var 来调用 public类型的方法或属性 可以通过parent::method 来调用父类中的方法
    在实例中可以能过$obj->var 来调用 public类型的方法或属性

protected: 受保护类型
        在子类中可以通过self::var 来调用 protected类型的方法或属性 可以通过parent::method 来调用父类中的方法
 在实例中不能通过$obj->var 来调用  protected类型的方法或属性

private: 私有类型
 该类型的属性或方法只能在该类中使用,在该类的实例、子类中、子类的实例中都不能调用私有类型的属性和方法


2.self 和 parent 的区别
  a).在子类中常用到这两个对像。他们的主要区别在于self可以调用父类中的公有或受保护的属性,但parent不可以调用

  b).self:: 它表示当前类的静态成员(方法和属性) 与 $this 不同,$this是指当前对像

附代码:

<?php
/**
 * parent 只能调用父类中的公有或受保护的方法,不能调用父类中的属性
 * self  可以调用父类中除私有类型的方法和属性外的所有数据
 
*/
class User
{
    
public $name;
    
private $passwd;
    
protected $email;    
    
public  function __construct()
    {
        
//print __CLASS__." ";
        $this->name= 'simple';
        
$this->passwd='123456';
        
$this->email = 'bjbs_270@163.com';
    }    
    
public function show()
    {
        
print "good ";
    }    
    
public function inUserClassPublic()
    {
        
print __CLASS__.'::'.__FUNCTION__." ";
    }    
    
protected  function inUserClassProtected()
    {
        
print __CLASS__.'::'.__FUNCTION__." ";
    }    
    
private function inUserClassPrivate()
    {
        
print __CLASS__.'::'.__FUNCTION__." ";
    }
    
}

class simpleUser extends User 
{    
    
    
public function __construct()
    {        
        
//print __CLASS__." ";
        parent::__construct();
    }
    
    
public function show()
    {
        
print $this->name."//public ";        
        
print $this->passwd."//private ";
        
print $this->email."//protected ";
    }
    
    
public function inSimpleUserClassPublic()
    {
        
print __CLASS__.'::'.__FUNCTION__." ";
    }
    
    
protected function inSimpleUserClassProtected()
    {
        
print __CLASS__.'::'.__FUNCTION__." ";
    }
    
    
private function inSimpleUserClassPrivate()
    {
        
print __CLASS__.'::'.__FUNCTION__." ";
    }
}

class adminUser extends simpleUser 
{
    
protected $admin_user;
    
public function __construct()
    {
        
//print __CLASS__." ";
        parent::__construct();
    }
    
    
public function inAdminUserClassPublic()
    {
        
print __CLASS__.'::'.__FUNCTION__." ";
    }
    
    
protected function inAdminUserClassProtected()
    {
        
print __CLASS__.'::'.__FUNCTION__." ";
    }
    
    
private function inAdminUserClassPrivate()
    {
        
print __CLASS__.'::'.__FUNCTION__." ";
    }
}

class administrator extends adminUser 
{
    
public function __construct()
    {        
        parent
::__construct();
    }
}

/**
 * 在类的实例中 只有公有属性和方法才可以通过实例化来调用
 
*/
$s = new administrator();
print '-------------------';
$s->show();
?>
阅读更多
个人分类: PHP技术文章
上一篇常用vi指命
下一篇IE 下的打印
想对作者说点什么? 我来说一句

面向对像的PPT面向对像的PPT

2010年03月25日 81KB 下载

delphi 面向对像思想源码

2012年10月05日 4.48MB 下载

PHP面向对像PDF学习产资料

2009年09月24日 3.11MB 下载

面向对像名词解释

2012年12月26日 17KB 下载

面向对象书籍经典编程思想

2009年03月15日 11.53MB 下载

javascript 学习笔记

2008年04月06日 583KB 下载

没有更多推荐了,返回首页

关闭
关闭