分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

PHP面向对象解析

发布时间:2023-09-06 01:18责任编辑:赖小花关键词:PHP面向对象
//面向对象
//一、什么是面向对象
//面向过程
//什么是对象
//一切皆是对象
//类
//由对象抽象画
//造类
class Ren
{
//构造方法
???function __construct($n)
???{
???????$this->name = $n;
???}

//成员变量
???public $name = "平阳";
???private $sex = "男";
//成员方法
???public function Speak(){
???????echo "正在说话";
???????echo $this->sex;
???}
}

//this (这个对象)
//对象实例化
$r1 = new Ren("平阳");

//$r1->name = "张杰";

echo $r1->name;

$r2 = new Ren("张杰");
echo $r2->name;

//var_dump($py);
//var_dump($r1==$r2);
//
//访问修饰符:

//public 公共的,所有对象都可访问
//protected 受保护的,当前类和子类可以访问
//private 私有的,当前类可以访问(只有内部可以访问)

//构造方法(写不写都存在)
//类的初始化方法

//////////////////////////////////

//上午总结

class Renlei
{
// ???构造函数/构造方法
???function __construct($name, $sex)
???{
???????$this->name = $name;
???????$this->sex = $sex;
???}

// ???析构函数/析构方法
???function __destruct()
???{
???????echo "这是析构方法";
???}

???private $name;
???private $sex;
???private $age;
???private $mz;

// ???双下划线开头的方法=>魔术方法
???function __set($n, $v)
???{
???????if ($n == "age") {
???????????if ($v > 10 && $v < 50) {
???????????????$this->$n = $v;
???????????}
???????}else{
???????????$this->$n = $v;
???????}
???}

???function __get($n)
???{
???????if($n == "sex"){
???????????if($this->$n == "1"){
???????????????return "男";
???????????}else{
???????????????return "女";
???????????}
???????}
???????return $this->$n;
???}

???public function speak()
???{
???????echo "正在说话";
???}
}

$r3 = new Renlei("py", "1");
//$r3->__set("age", "9");
$r3->age="11";
echo $r3->sex;

echo "<pre>";
var_dump($r3);
echo "</pre>";
//面向对象(OOP)的三要素
//封装,继承,多态
//1.封装
//目的:让类更加安全
//步骤:1,把所有的成员变量私有化
// ???2,对成员变量进行赋值
// ???3,对成员变量进行限制
class Ren
{
???private $name;
???private $sex;

???function __construct($n,$v)
???{
???????if ($n=="name"){
???????????$this->$n =$v;
???????}else{
???????????$this->$n =$v;
???????}
???}

???function __toString()
???{
???????// TODO: Implement __toString() method.
???????return"这是个方法";
???}

???function Speak(){
???????echo "正在说话";
???}
}


$r1 = new Ren("name","张三");
echo $r1;

//继承
//概念:子类可以继承父类的一切
//方法:


//override ??重写
//overload ??重载 ?编译多态

class Chinese extends Ren{
???function spesk(){
// ???????parent::speak();
???????echo "哈哈哈哈哈";
???}
}
$r2 = new Chinese("name","李四");
$r2->spesk();

//不知道传了多少把它都变成一个数组
function abc(){
???$arr = func_get_args();
}

//多态(运行多态)
//概念:当父类引用指向子类实例,子类里面对父类进行重写,父类引用调用该方法的时候表现不同的方法


//普通成员
//普通成员是属于对象的


//静态成员
//静态成员属于类

class Fenbi{
???public $lenght = "10cm"; ?????????//普通成员 ??属于类 ?static
???public static $color; ???//静态成员 ??属于类

???function hua(){
???????echo $this->lenght;
???????echo self::$color;
???}
???static function hua2(){
???????echo self::$color;
???}
}

$fb = new Fenbi();
$fb->hua();

Fenbi::$color = "red";
Fenbi::hua2();
$fb2 = new Fenbi();
$fb2->hua();

//关键字
//self 在类里面代表该类

//静态方法不能调用普通成员
//普通方法可以调用静态成员

//抽象
//关键字 abstract
//特点 不能被实例化只能被继承
//目的 为了派生子类 控制子类

//用于写基类
abstract class Renlei{
???public $name;

???function speak(){
???????echo "正在说话";
???}
}


//接口 ?(面向对象的接口)
//极度抽象的类
//接口里面不能包含成员变量,只能包含成员方法
//成员方法没有函数体
//interface 命名大写I开头 ?implements
//实现接口的类,必须实现接口里面的所有方法


interface Iusb{
???public function read();
???public function write();
}
class mouse implements Iusb{
???function read()
???{
???????// TODO: Implement read() method.
???}
???function write()
???{
???????// TODO: Implement write() method.
???}
}

//接口(API) ???区分

PHP面向对象解析

原文地址:http://www.cnblogs.com/little-rock/p/7676343.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved