PHP: 类的封装-类的封装修饰词public、protected、private

本文详细介绍了PHP中类的封装概念,包括public、protected和private三种访问控制修饰符的使用方法及其权限范围,通过具体代码示例展示了不同修饰符下成员变量和方法的可访问性。

类的封装修饰词:

1.public

#公开的
类外面可以访问,子类可以访问,父类可以访问.


类外面可以访问

<?php
// Person.class.php

class Person{
	protected $name;
	public $age;

	public function __construct($n,$a){
		$this->name=$n;
		$this->age=$a;
	}

	public function say(){
		echo "<p>my name is {$this->name}!</p>";
	}

	public function getAge(){
		echo "<p>my age is {$this->age}!</p>";
	}
}

class It extends Person{
    public $programme;

    public function __construct($n,$a,$p){
        parent::__construct($n,$a);

        $this->programme=$p;
    }

    public function develop(){
        echo "my programme is {$this->programme}";
    }
    public function mysay(){
        echo $this->name;
    }
    }
$obj=new It('user123',19,'吹水');
echo $obj->age;



?>

2.protected

#被保护的
类外面不能访问,子类可以访问,父类可以访问.


类外面不能访问

<?php
// Person.class.php

class Person{
	protected $name;
	public $age;

	public function __construct($n,$a){
		$this->name=$n;
		$this->age=$a;
	}

	public function say(){
		echo "<p>my name is {$this->name}!</p>";
	}

	public function getAge(){
		echo "<p>my age is {$this->age}!</p>";
	}
}

class It extends Person{
    public $programme;

    public function __construct($n,$a,$p){
        parent::__construct($n,$a);

        $this->programme=$p;
    }

    public function develop(){
        echo "my programme is {$this->programme}";
    }
   
    }
$obj=new It('user123',19,'吹水');
echo $obj->name;



?>


子类可以访问

<?php
// Person.class.php

class Person{
	protected $name;
	public $age;

	public function __construct($n,$a){
		$this->name=$n;
		$this->age=$a;
	}

	public function say(){
		echo "<p>my name is {$this->name}!</p>";
	}

	public function getAge(){
		echo "<p>my age is {$this->age}!</p>";
	}
}

class It extends Person{
    public $programme;

    public function __construct($n,$a,$p){
        parent::__construct($n,$a);

        $this->programme=$p;
    }

    public function develop(){
        echo "my programme is {$this->programme}";
    }
    public function mysay(){
        echo $this->name;
    }
    }
$obj=new It('user123',19,'吹水');
echo $obj->mysay();



?>

3.private

#私有的
类外面不能访问,子类不能访问,父类可以访问.

私有的-

<?php
// Person.class.php

class Person{
	protected $name;
	private $age;

	public function __construct($n,$a){
		$this->name=$n;
		$this->age=$a;
	}

	public function say(){
		echo "<p>my name is {$this->name}!</p>";
	}

	public function getAge(){
		echo "<p>my age is {$this->age}!</p>";
	}
}

class It extends Person{
    public $programme;

    public function __construct($n,$a,$p){
        parent::__construct($n,$a);

        $this->programme=$p;
    }

    public function develop(){
        echo "my programme is {$this->programme}";
    }
    public function mysay(){
        echo $this->name;
    }
    }
$obj=new It('user123',19,'吹水');
echo $obj->age;



?>

类的封装级别:

子类的修饰词权限要<=父类的同名方法前的修饰词权限.


报级别错误

<?php
// Person.class.php

class Person{
	protected $name;
	private $age;

	public function __construct($n,$a){
		$this->name=$n;
		$this->age=$a;
	}

	private function say(){
		echo "<p>my name is {$this->name}!</p>";
	}

	public function getAge(){
		echo "<p>my age is {$this->age}!</p>";
	}
}

class It extends Person{
    public $programme;

    public function __construct($n,$a,$p){
        parent::__construct($n,$a);

        $this->programme=$p;
    }

    public function develop(){
        echo "my programme is {$this->programme}";
    }
    private function say(){
        echo $this->age;
    }
    }
$obj=new It('user123',19,'吹水');
echo $obj->say();



?>

**


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值