php面向对象简单总结
发布时间:2022-07-29 14:31:25 所属栏目:PHP教程 来源:互联网
导读:基本知识 类:具有相同属性或方法的一类集合体。比如雪佛兰汽车是一个雪佛兰汽车类,奔驰汽车是一个奔驰汽车类,宝马汽车是一个宝马汽车类,而这三个类又是汽车大类的子类。 对象:类的一个具体实现,比如宝马Q5就是宝马汽车类的一个具体实现。对象地使用是放
基本知识 类:具有相同属性或方法的一类集合体。比如雪佛兰汽车是一个雪佛兰汽车类,奔驰汽车是一个奔驰汽车类,宝马汽车是一个宝马汽车类,而这三个类又是汽车大类的子类。 对象:类的一个具体实现,比如宝马Q5就是宝马汽车类的一个具体实现。对象地使用是放在内存中的。一下让我们了解一下对象在内存中的分配。 5.png 使用面向对象,就是灵活地使用以上两个知识点。让我们来创建和使用类与对象 *新建一个类 */ class newClass{ public $a; public $b; public function funA(){ echo "I am function A"; } public function funB(){ echo "I am function B"; } } /** *使用类创建对象 */ $opt=new newClass(); $opt->a="opt";//将opt对象中的a属性赋值为opt $opt->funA();//打印出"I am function A"?> 修饰符:在定义类与类中的属性时,我们可以使用如下三个修饰符,若不加,则默认为public public:权限最大 protected:权限范围在其本身与其子类 private:权限范围仅在其本身 <font color="blue" size="4">构造函数与析构函数</font>:在我们对类实例化创建对象时,往往需要对对象进行初始化,这时,我们就需要在类中定义一个构造方法。当我们使用完对象时,就需要释放对象,以减少内存的使用,这时我们就需要使用析构方法。 在php中我们使用__construct()方法与__destruct(),如下代码 public $a; public $b; public function __construct($a,$b){ $this->a=$a; $this->b=$b; echo "我是构造函数"; } public function __destruct(){ echo "我是析构函数"; } } ?> 封装性 当我们开发一些重要的程序模块时,常常不希望别人能轻易访问这些程序模块的数据,因此需要对这些数据进行封装。这时我们要进行数据的访问控制,常常使用<font color="red">private</font>关键字来对这些属性与方法进行封装。 如下: private $a; private $b; private function privateFun() { echo "我是封装的方法"; { private $a; private $b="ww"; public function __set($oldValue,$newvalue){ $this->$oldValue=$newvalue; } public function __get($newvalue){ return $newvalue; } } $opt= new setClass(); $opt->a="sss";//直接设置私有属性值 echo $opt->b;//直接读取私有属性值 ?> __isset()与__unset()的使用 通过__isset()直接查看对象中私有属性是否存在 通过__unset()直接删除对象中的私有属性 class issetClass { private $a; private $b = 'www'; function __isset($privateName) { if (isset($privateName)) { return 1; } else { return 0; } } function __unset($privateName) { echo "销毁" . $privateName; } } $opt = new issetClass(); echo isset($opt->$b); var_dump(unset($opt->$b));?> 继承性 当我们编写多个类时,常常多个类具有相同的属性与方法,为了简化代码我们引入了继承的概念,子类可以继承父类的一些属性与方法,减少了冗余代码地编写。 如何编写继承类 我们使用关键字extends来编写子类 <?php class parentClass{ } class childClass extends parentClass{ } ?> 如上,childClass是parentClass的子类,php仅支持单继承,即一个子类只有一个父类,但父类可以有多个子类。 重写父类方法 当父类中的方法不能满足子类的使用时我们可以重写父类方法。但当我们又想在子类使用父类的方法时,我们可以使用如下语法:parent::方法名几个重要的关键字 3.1 final final可以修饰类与方法,不能修饰成员属性; 被final修饰的类不能继承,而用final修饰的方法在子类中不能被重写 3.2 static static可以修饰成员属性与成员方法,不能修饰类; 使用static修饰的成员与方法可以通过类直接使用,使用如下语法:类名::$属性名或方法名(); 在类中使用时通过如下语法:self::$属性名或方法名. ![]() (编辑:应用网_丽江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |