摘要:<?php class Cat { public $name; protected $place; private $price; const N
<?php
class Cat
{
public $name;
protected $place;
private $price;
const NAME = '猫猫';
//构造方法
public function __construct($name,$place,$price)
{
$this->name = $name;//$this伪变量,访问非静态成员
$this->place = $place;
$this->price = $price;
}
public function getPlace()
{
$res = $this->place;
if ($this->name == 'kitty') {
$res = '人造猫还有祖籍?别逗了';
}
return $res;
}
public function getPrice()
{
$res = $this->price;
if ($this->name == 'kitty') {
$res = '不详';
}
return $res;
}
private function helloKitty($a){
echo $a.self::NAME,"<br>";//self用作类中引用类名
// self后面必须使用范围解析符::(双冒号)来访问类公共成员(如类常量和静态成员)
}
public function getHello($b='你好!'){
$this->helloKitty($b);
}
}
$cat_1 = new Cat('美短','美国',2000);
echo '姓名:', $cat_1->name, '<br>';
echo '祖籍:', $cat_1->getPlace(), '<br>';//私有变量访问接口
echo '售价:', $cat_1->getPrice(), '<br>';
$cat_2 = new Cat('kitty','美国',2000);
echo '姓名:', $cat_2->name, '<br>';
echo '祖籍:', $cat_2->getPlace(), '<br>';
echo '售价:', $cat_2->getPrice(), '<br>';
// echo $cat_2->helloKitty(); 私有方法无法访问
echo $cat_2->getHello();//私有方法访问接口
echo $cat_2->getHello('好棒!');运行结果:
姓名:美短
祖籍:美国
售价:2000
姓名:kitty
祖籍:人造猫还有祖籍?别逗了
售价:不详
你好!猫猫
好棒!猫猫
一层层揭开神秘的面纱,感觉好爽,谢谢老师
批改老师:天蓬老师批改时间:2018-11-30 11:30:43
老师总结:类的封装, 主要是通过private和protected来实现, 对于一个类来说, 对外暴露的东西,越少越好