php面向对象思维和构造方法

php5面向对象的程序设计

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

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

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

 

什么是对象 ,万物皆对象:桌子、椅子、电脑、手机、人。。。。。

类和对象的关系:用类创建的实例就是对象,对象中包含类中所以的成员属性和方法

对象:成员

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

    成员方法:函数====定义对象的功能

 

类的声明

1.你要开发的是什么,确定写什么类如:电话类

 

    [修饰类的关键字] class 类名{

         成员属性:外观、颜色、电池容量、屏幕尺寸...

         成员方法:大电话、拍照、发信息....

    }

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

3.在类中声明变量时一定要有修饰词[private protected public var static const ....],如果不知道使用什么修饰词时,建议用public或var,变量最好不要给值,

4.一个文件只保存一个类,文件名中包含类名,文件:类名.class.php,方便自动加载

5.通过类来实例化对象,只有对象才在内存中存储

  • 使用new创建一个对象,加上类名,就是创建那个类的对象
  • 只要有一个new关键字就是创建一个对象,没创建一个对象就在内存中分配一个空间

内存的解析:

数据段:常量、静态变量

栈内存:空间小、运行速度快,空间大小不固定、永远只存4字节的数据,主要存储参数名称,后进先出的原则

堆内存:空间大,cpu访问慢要通过栈来访问、长度不固定、存储比较大的数据:字符串/数组/对象

代码段:函数方法

6.对象成员引用:对象->成员

7.类的命名规则:

    变量:aaaBbbCcc

    函数:aaaBbbCcc

    常量:AAABBBCCC

    类名:AaaBbbCcc

 

<?php
	header('content-type:text/html;charset=utf-8');
	class Phone{
		var $color;
		var $pinpai;
		public $screenSize;

		function call($number){
			echo "打电话给 $number";
		}
		function message(){

		}
	}

	$phone = new Phone();
	$phone->call(110);

面向对象的构造与析构方法

1.对象中成员的访问(就是对象内部方法中,去访问对象中的其他方法和成员属性)

2.在对象中的方法中都默认有一个$this关键字,这个关键字代表调用这个方法的对象。第一人称代词:我

构造方法

1.是对象创建完成以后,“第一个”自动调用的方法

2.构造方法的定义:

    为类的成员属性初始化。

    在php4中和类名相同的的函数就是构造方法。

    在php5中构造方法选择使用魔术方法__construct()

        优点:在改变类名时,构造方法不需要改变

    魔术方法:在类中写出了某个魔术方法,这个方法对象的功能就会添加上。方法名都是系统固定的,没有自定义。

                    不同的魔术方法有不同的调用机制,都是已__开头的方法

    __construct(); __destruct(); __set(); __get(); __isset(); __unset(); __clone(); __call(); __sleep(); __weakup(); toString(); __auto_

 

析构方法

  • 当对象被释放之前最后一个自动调用的方法 
  • (java、PHP)使用垃圾回收器,而c++手动的释放

作用:关闭一些资源,做一些清理的工作

<?php
	header('content-type:text/html;charset=utf-8');
	class Person{
		var $name;
		var $sex;
		public $age;
		//传统的构造方法 php4
		function Person($name="",$sex="",$age=""){
			$this->name= $name;
			$this->sex= $sex;
			$this->age= $age;
		}
		//构造方法魔术方法 php5
		function __construct($name,$sex,$age){
			$this->name= $name;
			$this->sex= $sex;
			$this->age= $age;
		}

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

		}
                //析构
		function __destruct(){
			echo "结束";
		}
	}

	$person = new Person("张三","男","30");
	$person->say();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值