美文网首页
面向对象(OOP)

面向对象(OOP)

作者: 花果山孙悟空 | 来源:发表于2018-07-14 17:31 被阅读0次

OOP面向对象编程

面向过程:以程序执行顺序为主线来开发
面向对象:将一个项目看成有多个对象组成。通过多个对象组成项目

OOA and OOD

  1. OOA 面向对象分析
  2. OOD 面向对象设计

面向对象有三大特性

  1. 封装
  2. 继承
  3. 多态

对象、类

对象是由属性(成员变量)和方法(函数)组成的。
类是相同属性和方法的集合(抽象)
在程序中我们需要的是属性(变量)和方法(函数)来保存数据和执行逻辑,要调用属性和方法必须要有对象,要有对象必须先有类。
开发顺序:类----对象----属性和方法

属性(成员变量)

属性 = 访问修饰符 + 变量

header('Content-type:text/html;charset=utf-8');
/**
 * OOP属性的基本操作
 */
class Student{
    public $name = '李白';
    public $sex = '男';
}
//实例化对象
$stu = new Student();
$stu1 = new Student();
$stu -> name; //stu的name和stu1的name不是同一空间
$stu1 -> name;
//调用属性
echo $stu->name,'<br>';
echo $stu1->name,'<br>';
//增加属性
$stu->city = '帝都';
var_dump($stu);
echo '<br>';
//删除属性
unset($stu1->name);
//判断属性是否存在
var_dump(isset($stu->name),isset($stu1->name));
输出结果

方法

方法 = 访问修饰符 + 函数

/**
 * 函数方法
 */
class Student{
    public function show(){
        echo '春夏秋冬<br>';
    }
}
$stu = new Student();
$stu -> show();
输出结果

调用属性和方法

在OOP中,要调用属性和方法必须要有对象,new用来实例化对象

实例化对象,调用属性和方法

类、对象、属性、方法在内存中的分布

1.png
经常要找的代码会放在 中,但是因为 的内存空间比较小,大的代码量类似方法类的会放在 中,然后将方法的 引用地址 放入到 中去,以方便能够快速查找。

访问修饰符

修饰符 描述
public(公有的) 可以在类的内部和外部访问
private(私有的) 只能在类的内部访问
protected 在类的内部和子类中访问(在整个继承链上访问)

在OOP中,属性一般都是私有的,通过公有的方法对私有的属性进行赋值和访问。(目的是为了过滤数据)

header('Content-type:text/html;charset=utf-8');
/**
 * 过滤数据
 */
class Student{
    private $name;
    private $sex;
    public function setInfo($name,$sex){
        //过滤数据
        if($name == ''){
            echo '姓名不能为空<br>';
            exit;
        }
        if($sex !== '男' && $sex !== '女'){
            echo '性别不正确';
            exit;
        }
        //赋值
        $this->name = $name;
        $this->sex = $sex;
    }
    public function getInfo(){
          echo '姓名:'.$this->name.'<br>';
          echo '性别:'.$this->sex.'<hr>';
    }
}
$stu = new Student();
$stu -> setInfo('张三','男');
$stu -> getInfo();
输出结果

$this表示调用当前方法的对象

相关文章

网友评论

      本文标题:面向对象(OOP)

      本文链接:https://www.haomeiwen.com/subject/kjispftx.html