对象与类
来源:互联网 发布:数据分析师研究生待遇 编辑:程序博客网 时间:2024/06/06 08:42
在前面代码(两篇博客)中定义了一个类,并创建了这个类的对象,把前面产生的对象作为这个新对象的一个熟悉,完整代码如下:
class Person{ public $name; public $gender; public function say() { echo $this->name,"\tis\t",$this->gender,"\r\n"; }}class family{ public $people; public $location; public function __construct($p,$l) { $this->people = $p; $this->location = $l; }}$student = new person();$student->name = 'Tom';$student->gender = 'male';$student->say();$tom = new family($student,'peking');echo serialize($student);$student_arr = ['name'=>'Tom','gender'=>'male'];echo "\n";echo serialize($student_arr);print_r($tom);echo "\n";echo serialize($tom);
输出结果如下:
Tom is male
O:6:"Person":2:{s:4:"name";s:3:"Tom";s:6:"gender";s:4:"male";}
a:2:{s:4:"name";s:3:"Tom";s:6:"gender";s:4:"male";}family Object
(
[people] => Person Object
(
[name] => Tom
[gender] => male
)
[location] => peking
)
O:6:"family":2:{s:6:"people";O:6:"Person":2:{s:4:"name";s:3:"Tom";s:6:"gender";s:4:"male";}s:8:"location";s:6:"peking";}
可以看出,序列化后的对象会附带所属类名,这个类名保证此对象能够在执行类的方法(也是自己所能执行的方法)时,可以正确地找到方法所在的代码空间(即对象所拥有的方法存储在类里)。另外,当一个对象的实例变量引用其他对象时,序列化该对象时也会对引用对象进行序列化。
基于如上分析,可以总结出对象和类的概念以及二者之间的关系:
- 类是定义一系列属性和操作的模板,而对象则把属性进行具体化,然后交给类处理。
- 对象就是数据,对象本身不包含方法。但是对象有一个“指针”指向一个类,这个类里可以有方法。
- 方法描述不同属性所导致的不同表现。
- 类和对象是不可分割的,有对象就biubiu有一个类和其对应,否则这个对象也就成了没有亲人的孩子(但有一个特殊情况存在,就是由标量进行强制类型转换的object,没有一个类和它对应。此事,PHP中一个称为“孤儿”的stdClass类就会收留这个对象)。
如果需要一个类,要从客观世界抽象出一套规则,就得总结这类事物的共性,并且让它可以与其他类进行区分。而这个区分的依据就是属性和方法。区分的办法就是实例化出一个对象,是骡子是马,拉出来溜溜。
现在,你是否对“白马非马”这个典故有了新的认识?
- OOP-----类与对象对象
- OOP-----类与对象对象
- 对象与元类对象
- 对象与类类型
- C02(类与对象)
- 类与对象(PHP5)
- 类与对象
- 区分类与对象
- 类与对象
- 类与对象
- 类与对象
- C#类与对象
- 对象与类
- 类与对象总结
- js类与对象
- C++ 类与对象
- 类与对象
- 类与对象概述
- 二维背包
- PAT甲级练习1002. A+B for Polynomials (25)
- NYOJ845 - 无主之地1
- CSS3学习随记2⃣️
- 提交表单--get与post方式
- 对象与类
- django1.8+中bootstrap安装
- 简单css+js动态加载特效
- Android App支付系列(一):微信支付接入详细指南(附官方支付demo)
- JAVA变量类型
- POJ 1141 Brackets Sequence 区间DP(括号匹配)
- 297UVa四分树
- Note7燃损原因公布三星汲取经验教训强化安全措施
- 拔开疑云查明真相三星公布Note7燃损原因系电池所致