PHP面向对象的程序设计2
来源:互联网 发布:spark要用java吗? 编辑:程序博客网 时间:2024/05/21 07:11
封装性:封装性是面向对象编程中的三大特性之一,就是把对象的成员属性和成员方法结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节。
私有成员:private关键字就实现了对成员的封装,封装后的成员在对象的外部不能被访问,但在对象内部的成员方法中可以访问到。
魔术方法__set():是一种可以控制成员的方法,经过公有方法间接为私有属性赋值时,可以在方法中做一些条件限制
魔术方法__get(0:如果在类中声明了__get()方法,则直接在对象的外部获取私有属性的值时,会自动调用此方法,返回私有属性的值,并且可以在__get()方法中根据不同的属性,设置一些条件来限制对私有属性的非法取值操作。
继承性:它是指建立一个新的派生类,从一个先前定义的类中继承数据和函数,而且可以重新定义或加进数据和函数,从而建立类的层次或等级关系。
使用extends关键字实现多个类的单继承关系:
class Person{
var $name;
var $sex;
var $age;
function __construct($name="",$sex="man",$age=1){
$this->name = $name;
$this->sex = $sex;
$this->age = $age;
}
function say(){
echo "My name is :".$this->name.",sex:".$this->sex.",age:".$this->age."<br>";
}
function run(){
echo $this->name."is running";
}
}
//声明一个学生类,使用extends关键字扩展Person类
class Student extends Person {
var $school; //在学生类中声明一个所在学校的school的成员属性
//在学生类中声明一个学生可以学习的方法
function study(){
echo $this->name."正在".$this->school."学习<br>";
}
}
class Teacher extends Student{
var $wage;
function teaching(){
echo $this->name."正在".$this->school."教学,每月工资为:".$this->wage."<br>";
}
}
$teacher1 = new Teacher("Mr.zhang","man",40);
$teacher1->school = "edu";
$teacher1->wage = 3000;
$teacher1->say();
$teacher1->study();
$teacher1->teaching();
var $name;
var $sex;
var $age;
function __construct($name="",$sex="man",$age=1){
$this->name = $name;
$this->sex = $sex;
$this->age = $age;
}
function say(){
echo "My name is :".$this->name.",sex:".$this->sex.",age:".$this->age."<br>";
}
function run(){
echo $this->name."is running";
}
}
//声明一个学生类,使用extends关键字扩展Person类
class Student extends Person {
var $school; //在学生类中声明一个所在学校的school的成员属性
//在学生类中声明一个学生可以学习的方法
function study(){
echo $this->name."正在".$this->school."学习<br>";
}
}
class Teacher extends Student{
var $wage;
function teaching(){
echo $this->name."正在".$this->school."教学,每月工资为:".$this->wage."<br>";
}
}
$teacher1 = new Teacher("Mr.zhang","man",40);
$teacher1->school = "edu";
$teacher1->wage = 3000;
$teacher1->say();
$teacher1->study();
$teacher1->teaching();
常见的关键字和魔术方法:
final关键字的应用:此类不能不被继承,可以加在类或类中的方法前。
static关键字的使用:使用static关键字可以将类中的成员表示为静态的,既可以用来标识成员属性,也可以用来标识成员方法。
单态设计模式:单态模式的主要作用是保证在面向对象编程设计中,一个类只能有一个实例对象存在。好处是可以节省内存,因为它限制了实例化对象的个数。
const关键字:const和static使用的方法比较相似,使用const关键字可以将类中的成员属性定义为常量,访问的方法和静态成员一样。都是通过类名或在成员方法中使用self关键字访问。
instanceof关键字:使用instanceof关键字可以确定一个对象是类的实例、类的子类,还是实现了某个特定接口。
克隆对象clone关键字:可以建立一个对象的副本,改变原来的对象时不会影响到副本。
类中通用的方法__toString():快速获取对象的字符串标识的最便捷的方式。
__call()方法的应用:调用对象中不存在的方法时就会自动调用该方法,并且程序也可以继续向下执行
对象的串行化:利用serialize()函数来串行化一个对象,把对象转换成二进制字符串。利用unserialize()函数来进行反串行化,就是把一个串行化过的值,返回原来的状态。
阅读全文
0 0
- PHP面向对象的程序设计2
- PHP面向对象的程序设计
- PHP面向对象的程序设计
- PHP面向对象程序设计
- PHP面向对象的程序设计(概述)
- PHP面向对象的程序设计学习总结
- PHP面向对象的程序设计3
- 面向对象的程序设计2
- PHP 面向对象程序设计资源
- 面向对象程序设计和PHP
- PHP面向对象程序设计--概述
- PHP 面向对象化程序设计
- php学习笔记 PHP面向对象的程序设计
- 《PHP与MySQL程序设计》面向对象的PHP
- 【细说PHP学习】第十章 PHP面向对象的程序设计
- PHP学习(十五)--PHP面向对象的程序设计
- 面向对象的程序设计
- 面向对象的程序设计
- S5PV210开发 -- GPIO
- 2017/11/9 c语言学习之路
- 手机格式,省份证格式,过滤图标,过滤qq图像
- 新 CentOS 6.5 6.9 环境下搭建直播模拟测试环境 ffmpeg+nginx=rtmp (傻瓜式环境搭建)
- Javacore分析
- PHP面向对象的程序设计2
- 【Android进阶】Android Binder之ServiceManager注册服务解析1
- easyUI入门
- android jar转dex
- CentOS命令大全
- 字符串转换
- ubuntu16修改mysql默认字符集为utf8
- git版本控制常用命令
- 中文大写日期转换函数