面对对象
面对对象的三大特征是:
1,封装:就是把客观事物封装成抽象的类。
2,继承:所谓继承是可以让某个类型的对象获得另一个类型的对象的属性的方法。
3,多态:所谓多态就是指一个类实例的相同方法在不同情形有不同的表现形式。
对象就是类的实例化,而类是对具有共同属性的对象的抽象。
类有成员 属性和成员方法,属性是指有什么什么,方法是能干什么什么。
常用class声明类:
class like{ //like就是类名
public function run(){ //run就是成员方法名
echo“这是方法”
}
}
类需要转为对象才能使用:
$h=new like(); 这是将类转为对象;
$h->name; 这是调用成员方法和成员属性
$h->run;
魔术方法
——construct()系统提供的方法魔术方法可自动执行不必调用。
2,当对象创建时已经调用了。
3,双划线开头,方法名固定,自动调用,满足一定条件。
public $name;
public function ——construct(){
$this->name=$name; //$this是指的自己;
}
调用也是使用
$h=new like('name');
echo $h->name;
$h1=new like('name');可以两个对象调用一个类;
echo $h1->name;
构造方法
public $name;
public $age;
public $sex;
public function __construct($name,$age,$sex){
$this->name=$name;
$this->age=$age;
$this->sex=$sex;
}
$h=new like('name','age','sex');
$h->name;
$h->age;
$h->sex;
析构方法
则是对象被销毁前自动调用;
public function ——destruction(){
echo“销毁”
}
就是把程序走完之后执行这个销毁;
封装
是魔术方法有——set,——get;
——set:类外强制给类种受保护的和私有的属性赋值会被直接调用;
——get:类外获取受保护的和私有的会被直接调用;
isset():判断变量是否有值类外部判断就会被触发返回true和false受保护和私有的是访问不到的;
unset()销毁变量,再类外部使用;
unset($h->变量);
unset($this->$k);
继承
class text {
function ——constrcut(){
echo"爱你的我";
}
}
class stu extends text{
}
stu拥有text的功能方法自己也可以有自己的方法和属性
可以使用echo text ::父类的方法名也可以用echo parent::父类的方法名这个是只找父类。
public(共有)protected(受保护的)private(私有的)
本类 可以访问 可以访问 可以访问
子类 可以访问 可以访问 不可以
类外 可以 不可以 不可以
在子类中重写父类的方法权限时一定不能低于父类被覆盖的方法的访问权限。
final 关键字标识的类不能被继承既不能有子类 使用final关键字标识的方法被子类所覆盖。
const 关键字常量 常量名大写不用$修饰
访问时用self ::常量属性名(类内部)
类名::常量属性名(类外部)
$b=new b;
instanceof用来判断b是否有$b创建。
——clone关键字克隆 类外如果使用时则调用类里克隆方法,被克隆和克隆后是两个独立的互不影响
——tostring()直接echo输出对象会调用——tostring常用于对类的说明文档,返回结果是字符串,使用return返回,必须使用字符串‘ ’。
——call 当类外调用方法时 不存在时会触发类中的——call方法,可以用来提示,当调用私有和受保护也会触发。