PHP面向对象的程序设计(概述)

PHP5  面向对象的概述

一、面向对象的特性

数组和对象:都属于PHP的符合类型(一个变量可以存储多个单元);

对象比数组更强大,不仅可以存储多个数据,还可以将函数存在对象;

对象的三大特性:封装、继承、多态;

面向对象编程(oop )

面向对象面向过程之间的区别——最小的单位分别是:函数、  对象

二、对象的概念

对象就是东西,一个实体。

对象:成员          成员属性(变量——定义对象的外观和状态)

                              成员方法(函数——定义对象的功能)

什么是类?——分类、类型、自己类型(桌子、椅子、电脑);在类中定义这个类型的属性和方法。

类和对象之间的关系:

声明类-->实例化对象(创建对象)-->用对象

并不是面向对象的语法难,最难的就是如果设计出面向对象的程序

三、类的声明

1.你要开发的是什么,确定写什么类。

【修饰类的关键字】 class 类名{

        成员属性;

        成员方法;

}

一个文件只保存一个类,文件名中包含类名,  文件: 类名.class.php

类名一定要有意义,方便;类名单词首字母大写,变量第二个单词首字母大写。

2.类中的成员一定要属于这个类

在类中声明成员属性时,前面必须有修饰词(private  public protect  constant  var),当不知道使用哪个时,就是用var;如果知道使用哪个修饰词,就不使用var。   类中的成员属性,如果创建多个对象时,每个对象有不同的值,成员属性不给初值,创建对象之后再赋值。

四、对象实例化和使用

通过类来实例化对象,只有对象才在内存有存储空间;

1.使用的是new新建一个对象,加上类名,就是创建那个类的对象;例如:$对象引用 = new 类名;

2.只要有一个new关键字就是创建一个对象,创建一个对象就是在内存中分配了一个空间;(对象在内存中的分配)


3.对象的使用

        对象中的成员必须通过对象的引用来访问;

        对象->成员

        对象->成员属性=新值

        echo 对象->成员属性

       对象->成员方法

4.$this关键字的使用

    ① 对象中成员的访问(就是在一个对象的内部方法中,去访问本对象中的其它方法和成员属性)

    ② 在对象中的方法中都默认有一个$this关键字, 这个关键字代表调用这个方法的对象

    ③ 第一人称代词:我

五、构造方法和析构方法

 1.构造方法, 构造器
    ① 是对象创建完成以后,“第一个” “自动调用”的方法
    ② 构造方法的定义, 方法名一个固定的,
     在PHP4中 和类名相同的方法就是构造方法
     在PHP5中 构造方法选择使用 魔术方法 __construct() 所有类中声明构造方法都使用这个名称
          优点: 在改变类名时,构造方法不用改变 
       作用:就是为成员属性初使化;
     
      魔术方法:
      在类中写出了某个魔术方法, 这个方法对象的功能 就会添加上
 
      方法名称都固定的(都是系统给我们提供好),没有自己定义的, 
 
      每一个魔术方法, 都是在不同时刻为了完成某一功能自动调用的方法
      不同的魔术方法有不同调用 时机
 
      都是以 __开头的方法
      __construct();
      __destruct();
 
      __set();
      __get();
      __isset();
      __unset();
      __clone();
      __call();
      __sleep();
      __weakup();
      __toString()
      ... 
      __autoload();
 
  2. 析构方法:__destruct();
 
    当对象被释放之前最后一个 “自动”调用的方法,后进先出的原则;
 
   使用垃圾回收器(java PHP)而C++手动的释放
 
   作用:关闭一些资源, 作一些清理的工作

    示例:

<?php
	class Person {
		var $name;
		var $age;
		var $sex;
	
		function __construct($name="", $age=0, $sex="男"){
			$this->name=$name;
			$this->age=$age;
			$this->sex=$sex;
		}


		function say(){
			echo "我的名子:{$this->name},我的年龄:{$this->age},我的性别:{$this->sex}。<br>";
			$this->eat();
		}

		function run(){
		
		}

		function eat(){
		
		}

		function __destruct(){
			echo $this->name."再见!<br>";
		}
	}

$p1=new Person("zhangsan", 20, "女");
$p2=new Person("lisi", 25);
$p3=new Person("wangwu");

$p1->say();
$p1=null;
$p2->say();
$p3->say();
?>


        


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值