类声明、类实例化对象、对象中成员的访问、特殊对象的引用$this
2016-08-20 17:04
405 查看
类的声明
面向对象程序的单位就是对象,但是对象又是通过类实例化出来的。首先我们要知道如何声明一个类。<?php class person { var $name;//成员属性 var $age; var $sex; public function say(){//成员方法 } public function run(){ } }
类格式说明
1.声明类必须使用关键字class ,有时需要在class关键字前面加上修饰符。如:public private protected static final…..
2.类名必须遵守命名规则,如果有多个单词组成,习惯上每个单词首字母大写。
3.类中包括成员属性和成员方法。声明变量不需要任何关键词,而在类中声明成员属性时,变量前面一定要使用关键字,列如:如:public private protected static final…..这些关键字修饰符的变量都具有一定意义。如果不需要特定意义的修饰,就使用var 关键字。
4.成员方法的声明跟函数声明一样,只不过可以加一些修饰符。如:public private protected static final…..
类实例化对象
将类实例化对象,使用new 关键字并在后面加上与类名同名的方法。如果在实例化对象时不需要为对象传递参数,在new 关键字后面加上类名即可.$变量名=new 类名称(参数列表); $变量名=new 类名称;
<?php class Phone{ var $Menu; var $color; var $batty; var $screen_size; function call(){ echo '在打电话'; } function message(){ echo '在发送信息'; } function Playmusic(){ echo '在播放音乐'; } function photo(){ echo '正在拍照'; } } class Person(){ var $name; var $sex; var $age; function say(){ echo '人在说话'; } function run(){ echo '人在走路'; } } $person=new Person(); $person1=new Person(); $phone=new Phone();
一个类可以实例化出多个对象,每个对象都是独立的。同个类声明的多个对象之间没有联系,只能说明他们都是同个类型,每个对象内部都有类中声明的成员属性和成员方法。
对象中成员的访问
对象中包括成员属性和成员方法,访问对象中的成员则包括成员属性和成员方法的访问。$引用名=new 类名称([参数列表]); $引用名->成员属性=值;//成员属性赋值 $引用名->成员属性;//访问成员属性 $引用名->成员方法;//访问成员方法
<?php header('content-type:text/html;charset=utf-8'); class Person{ var $name; var $sex; var $age; function say(){ echo '这个人在说话<br/>'; } function run(){ echo '这个人在走路<br/>'; } } $person1=new Person(); $person1->name='张三'; $person1->sex='男'; $person1->age=20; echo "对象person1的名字:".$person1->name."<br/>"; echo "对象person1的性别:".$person1->sex."<br/>"; echo "对象person1的年龄:".$person1->age."<br/>"; $person1->say(); $person1->run(); //结果 对象person1的名字:张三 对象person1的性别:男 对象person1的年龄:20 这个人在说话 这个人在走路
只要是对象中的成员,都要使用 “$对象引用名->属性名 ” 或 “$对象引用名->方法 ” 形式访问。如果对象中的成员不是静态的,那么这是唯一访问形式。
特殊对象的引用$this
我们知道访问对象中的成员必须通过对象的引用完成,如果在对象的内部,在对象的成员方法中访问自己对象中的成员属性,或者访问自己对象内其他成员方法时该怎么处理?这是需要对象引用this对象一旦被创建,在对象中的每个成员方法里面都会存在一个特殊的对象引用“$this”成员方法属于哪个对象,$this引用就代表哪个对象,专门用来完成对象内部成员之间的访问。
<?php header('content-type:text/html;charset=utf-8'); class Person{ var $name; var $sex; var $age; function say(){ echo "我的名字".$this->name."性别:".$this->sex."年龄:".$this->age."<br/>"; } function run(){ echo $this->name.'这个人在走路<br/>'; } } $person1=new Person(); $person2=new Person(); $person3=new Person(); $person1->name='张三'; $person1->sex='男'; $person1->age=20; $person1->say(); $person1->run(); //结果 我的名字张三性别:男年龄:20 张三这个人在走路
相关文章推荐
- js对象内部访问this修饰的成员函数示例
- 为什么static成员的类型可以是类本身?又为什么非static成员被限定声明为其自身类对象的指针或引用?
- 静态成员函数中不允许引用类的非静态成员,但可以访问对象中的非静态成员
- effective c++条款21,22,23(返回对象时,别妄想反回其引用,将成员变量声明为private,宁可拿非成员非友元函数替换成员函数(增强封装性))
- js对象内部访问this修饰的成员函数示例
- 详解C++编程中类的声明和对象成员的引用
- 继承 单继承 多层继承 成员变量:this & super ; 成员函数:覆盖操作; 一个对象实例化过程!!
- 鸡啄米:C++编程入门系列之十三(类与对象:类的声明、成员的访问控制和对象)
- 十三、类与对象:类的声明、成员的访问控制和对象
- this引用指向当前对象的成员
- 对用父类指针(或引用)指向父类对象和子类对象时,从而用父类指针或者引用访问成员时的深刻理解;
- C++编程入门系列之十三(类与对象:类的声明、成员的访问控制和对象)
- 7.22通过对象的引用访问对象中的成员
- this指针访问对象的数据成员
- 详解C++编程中类的声明和对象成员的引用
- 声明和实例化-对象引用-对象废除
- 为什么static成员的类型可以是类本身?又为什么非static成员被限定声明为其自身类对象的指针或引用?
- flex TypeError: Error #1009: 无法访问空对象引用的属性或方法
- 访问对象的数据成员