PHP 类
嘛是类呢?到现在还不懂可以去死了;不过这里有个坑我没踩完,回头踩踩!!!
class Car
{
public$name = '汽车' ; // 定义公共属性
//可以在外部调用时根据需要改变属性的值或者赋予未定义的属性值。
protected$shop = '4S店' ; // 定义受保护属性
// 子类可以调用,外部不能调用 ,但是实例化的对象无法使用【可以通过public 方法改变此值】。
private $pop = 'laomo' ; //定义 私有属性
// 子类不能调用、外部不能调用;
public function showShop(){
return $this -> shop.'<br/> }
public function showPop(){
return $this -> pop.'<br/> }
// 创建对象时,构造方法会被自动调用,构造方法可以确保必要的属性设置,并完成任何需要准备的工作
public function __construct(){
// $this->name = $name; // 使用伪变量$this给每个变量赋值
// $this->shop = $shop;
// $this->pop = $pop;
print '构造函数被调用<br/> }
}
// 测试
$car = new Car();
echo $car->name;//成功
// echo $car->shop;// 错误 受保护属性不被外部访问
// echo $car->pop; //错误 私有属性不被外部访问
// 换外部方法访问
echo $car->showShop();// 通过 函数访问内部受保护属性 成功
echo $car->showPop();// 通过 函数访问内部私有属性 成功
// 子类测试
// // 若派生类没有定义构造方法,则它在实例化是会自动调用父类的构造方法。子类默认继承父类所有的 public 和 protected 方法,但不继承 private 方法和属性
class Lanniao extends Car
{
// 这样的取值有问题parent:: 属性名是错误的, 应该是
// public $amm = shop;
function __construct(){
print '进入了子类 }
function abc(){
$ab = parent::showShop();
$ac = parent::showPop();
echo '<br/>子类访问测试——————'.$ab;
echo '<br/>子类访问测试——————'.$ac; // 私有属性也可以这么访问 但是直接访问不行
}
}
$c = new Lanniao();
$c -> abc();
echo $c -> name;
页:
[1]