🎼个人主页:金灰
😎作者简介:一名简单的大一学生;易编橙·终身成长社群的嘉宾.✨
专注网络空间安全服务,期待与您的交流分享~
感谢您的点赞、关注、评论、收藏、是对我最大的认可和支持!❤️
🍊易编橙·终身成长社群🍊 : http://t.csdnimg.cn/iSLaP 期待您的加入~
免责声明:本文仅做分享...
目录
类与对象
属性的权限-划分:
类的继承:
例:
方法的属性修饰符:
方法的修饰:
static修饰
final修饰
类的分类:
1 普通类 没有任何修饰
2 抽象类
3 接口 interface
4 trait
5 匿名类
类与对象
//用户类--属性和方法的集合
class user{public $username; //共有属性private $password; //私有属性//公共方法public login(){echo $this->password;}//公共方法public logout(){}}
// ------------
class user{public $username; //共有属性private $password; //私有属性protected $userType;public static $platform="ctf";//公共方法public login(){echo $this->password;}//公共方法public logout(){}}
类的定义,我们可以认为是设计图.
类的对象-
//实例化一个类 --> 从设计图转换为一个可以用的变量,变量类型不再是字符串或者数字,而是一个对象.
$u = new user(); 每个对象中,静态属性值,不变
$p = new user();$u->username;
$p->username;
//外部不能直接引用password (private $password; //私有属性
类和对象的关系,类似于 设计图(蓝图) 与 生成出的产品 之间的关系.
一个设计图(类)-->多个产品(对象)
属性的权限-划分:
1 public 权限 外部可以通过箭头访问到
2 private 权限 内部通过 $this->username 访问到
3 protected 权限 表示 自身及其子类 和父类 能够访问
类的继承:
例:
普通用户 vip用户 管理员用户
-->都属于user类
//通过extends直接继承(获得)类的内容
class normalUser extends user{public $score;public function play(){echo $this->userType;}
}
$n = new normalUser();----------
class vipUser extends user{public $score;
}----------
class adminUser extends user{public $score;
}
方法的属性修饰符:
public
private
protected
方法的修饰:
静态属性 static //一旦修饰为静态,就写死了,不能改. --修饰方法的话,直接通过类名调用.
final属性 final //修饰方法时,父类的方法>子类的方法.
static修饰
final修饰
class user{public $username; //共有属性private $password; //私有属性protected $userType;public static $platform="ctf";public function __construct($username,$password){ //类的构造方法$this->username = $username;$this->password = $password;}//公共方法public final function login(){echo $this->password;}//公共方法public function logout(){}}
class normalUser extends user{public $score;public function play(){echo $this->userType;}
}
public function login(){echo "i am normalUser";
}
//类的静态方法
public static function go(){
echo "gogoog!";
}
}
$n = new normalUser("admin","admin666");
$n->login();$n = new normalUser("admin","admin666");
$n->login();
类的分类:
1 普通类 没有任何修饰
class user{public function login(){}public function logout(){}
}
2 抽象类
// 类里面有一个abstract方法就是抽象类.(只定义无内容)
abstract class user{ //对类也进行标识.public function login(){}public function logout(){}abstract function play();
}类里面的方法,有些是有详细的实现,有些就只有个方法名字,没具体实现.
抽象类 不能被 new 也就是不能被直接 实例化对象.
-> 在父子类中,父类用的抽象方法,子类就必须要声明其方法的实现,
--不想实现的话,子类就把自己也变成抽象类(抽象方法)
3 接口 interface
(所有方法都是抽象方法时就不需要写abstract )
接口-->为了实现多继承效果class xxx extends user implements 接口 // 可以实现多个接口interface service1(){}
interface service2(){}class xxx extends user implements service1,service2{}
4 trait
(php5.4之后)
可以认为是代码段 ,方便复制粘贴
// 用于普遍操作,
//一般不涉及类的属性的读取操作--不使用属性
trait math{function add(){}function mub(){}} class xxx(){use math;
}
5 匿名类
不打算用/用1次..
//一次性匿名类的例子(类名都不配拥有,给你个属性直接调用)
$v->play(new class{public $username="我是匿名类";
});$a = new class{public $name="1";public $passwd="大";
}
//类似于 data伪协议.