余志刚php学习笔记之php面向对象学习.docx
- 文档编号:8959479
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:18
- 大小:17.39KB
余志刚php学习笔记之php面向对象学习.docx
《余志刚php学习笔记之php面向对象学习.docx》由会员分享,可在线阅读,更多相关《余志刚php学习笔记之php面向对象学习.docx(18页珍藏版)》请在冰点文库上搜索。
余志刚php学习笔记之php面向对象学习
余志刚php学习笔记之面向对象
面向对象之一
php
/*
*Createdon2012-3-8上午09:
44:
38
*AuthorbyYUZhigang
*
*今天学习的是面向对象
*/
classmypc{
public$key;
public$name;
functiondispaly(){
echo"我爱杨丹";
}
}
$pc1=newmypc();
$pc1->key='我爱php';//赋值,注意没$
echo$pc1->key;
$pc1->dispaly();
?
>
面向对象之二
php
/*
*Createdon2012-3-8上午09:
51:
56
*AuthorbyYUZhigang
*
*今天学习的是
*1、创建一个和多个对象
2、对象中的$this关键字
3、初始化对象__construct()
4、析构函数__destruct()
*/
classmypc{
public$name;//可以用var
public$type;
functionvod(){
return'playfilm';
}
functiongame(){
return$this->name.'playgame';
}
functioninternet(){
return$this->game().'serfingonline';
}
}
$pc1=newmypc;
$pc2=newmypc;
$pc1->name='homecomputer';
$pc2->name='companycomputer';
echo$pc1->name.$pc1->vod()."
";//不用this就这样调用,很麻烦
echo$pc1->game()."
";
echo$pc2->internet()."
";
?
>
面向对象之三
php
/*
*Createdon2012-3-8上午10:
19:
14
*AuthorbyYUZhigang
*
*今天学习的是
*3、初始化对象__construct()
4、析构函数__destruct()
*/
classmypc{
public$name;//可以用var
public$type;
function__construct($name='',$type=''){//初始化对象
$this->name=$name;
$this->type=$type;
}
functionvod(){
return'playfilm';
}
functiongame(){
return$this->name.'playgame';
}
functioninternet(){
return$this->game().'serfingonline';
}
function__destruct(){//后进先出的原则
echo"
=========".$this->name;
}
}
$pc1=newmypc('homecomputer','table');//给函数赋值
$pc2=newmypc('companycomputer','laptop');
echo$pc1->game()."
";
echo$pc2->game()."
";
?
>
面向对象之四
php
/*
*Createdon2012-3-8上午10:
43:
30
*AuthorbyYUZhigang
*
*今天学习的是析构函数__destruct()
*/
classconn{
public$hostname;
public$username;
public$userpwd;
public$conn;
publicfunction__construct($x,$y,$z){//应用构造函数对类体中的属性进行初始化
$this->hostname=$x;
$this->username=$y;
$this->userpwd=$z;
}
publicfunctiongetConn(){//建立与数据库的连接
$this->conn=mysql_connect($this->hostname,$this->username,$this->userpwd);
return$this->conn;
}
publicfunction__destruct(){//应用析构函数自动释放连接资源
mysql_close($this->conn);
}
}
/*
*析构函数是在对象销毁时调用的代码。
当这个对象用完之后,会自动执行这个函数中的语句。
把数据库关闭的代码放在这里。
就是在对象被销毁的时候顺便把数据库连接关闭了。
*/
?
>
面向对象之五
php
/*
*Createdon2012-3-8上午10:
49:
31
*AuthorbyYUZhigang
*
*今天学习的是publicprotectedprivate
*public表示全局,类内部外部子类都可以访问;
protected表示受保护的,只有本类或继承类或父类中可以访问;
private表示私有的,只有本类内部可以使用;
*/
classmypc{
private$name;//可以用var
function__construct($name=''){//初始化对象
return$this->name=$name;
}
function__get($name){//有这里后面才可以访问private
return$this->name."=======";
}
function__set($n,$v){//有这里后面才可以修改private
$this->$n=$v;
}
privatefunctionpower(){
echo$this->name."正在开机......";
}
functionok(){
echo$this->name."开机完成"."
";
}
}
$pc1=newmypc("我的电脑");
echo$pc1->name;//上面__get起作用
$pc1->name="ok";//上面__set起作用
echo$pc1->name;
?
>
面向对象之六
php
/*
*Createdon2012-3-8下午12:
32:
57
*AuthorbyYUZhigang
*
*今天学习的是方法名一样可以用:
:
处理
*protected属性
*protected表示受保护的,只有本类或继承类或父类中可以访问
*/
classfather{
protectedfunctionblood(){//protected属性
return"bloodtypeA"."
";
}
}
classsonextendsfather{
functionblood(){
returnfather:
:
blood()."bloodtypeAB";//同名的方法名要用:
:
,不然出现错误
}
}
$my=newson();
echo$my->blood();//有protected属性就在继承类中可以访问
echo"
---------
";
$you=newfather();
echo$you->blood();//有protected属性就访问不到
?
>
面向对象之七
php
/*
*Createdon2012-3-8下午12:
20:
07
*AuthorbyYUZhigang
*
*今天学习的是继承extends
*/
classfather{
functionbloodfather(){
return"bloodtypeA"."
";
}
}
classsonextendsfather{
functionbloodson(){
return$this->bloodfather()."bloodtypeAB";
}
}
$my=newson();
echo$my->bloodfather();
echo"
---------
";
echo$my->bloodson();
?
>
面向对象之八
php
/*
*Createdon2012-3-8下午12:
53:
11
*AuthorbyYUZhigang
*
*今天学习的是抽象类abstract
*抽象类的特点:
*1.不能实例化,但可以被继承
*2.继承类中要把所有的抽象方法重载才可以实例化
*/
abstractclassmypc{
abstractfunctionfun1();
abstractfunctionfun2();
abstractfunctionfun3();
functionok(){
}
}
classpc1extendsmypc{//上面的抽象方法必须全部重载
functionfun1(){
echo"第一个";
}
functionfun2(){
echo"第二个";
}
functionfun3(){
echo"第三个";
}
}
$pc=newpc1();
$pc->fun2();
?
>
面向对象之九
php
/*
*Createdon2012-3-8下午01:
13:
10
*AuthorbyYUZhigang
*
*今天学习的是
*fianl锁的作用
*当定义为类时,该类不可以被继承
*当定义为方法是,该方法不可以被重载
*self
*self:
:
类内部成员或者
*类名:
:
类内部成员
*static
*const常量
*/
classmypc{
constNAME="我的电脑";//当声明为常量
functionpower(){
echoself:
:
NAME."开机中.....";//在自己类中调用常量,这里还可以用mypc
}
}
classnewpcextendsmypc{
functionpower1(){
echomypc:
:
NAME."loading.....";//在继承类中调用
}
}
$pc1=newmypc();
$pc1->power();
echo"
";
$pc2=newnewpc();
$pc2->power1();
?
>
面向对象之十
php
/*
*Createdon2012-3-8下午01:
13:
10
*AuthorbyYUZhigang
*
*今天学习的是
*fianl锁的作用
*当定义为类时,该类不可以被继承
*当定义为方法是,该方法不可以被重载
*/
classmypc{//当在类前加final,则该类不可被继承
public$name;
functionpower(){//当定义在方法前加final,该方法不可以被重载
echo"开机中.....";
}
}
classnewpcextendsmypc{
functionpower(){
echo"loading.....";
}
}
$pc=newnewpc();
$pc->power();
?
>
面向对象之十一
php
/*
*Createdon2012-3-9上午04:
20:
56
*AuthorbyYUZhigang
*
*今天学习的是static
*static声明静态属性
*/
classmypc{//当在类前加final,则该类不可被继承
static$name="我的电脑";//当声明为静态属性时,下面要用self调用,$this不可用
functionpower(){
echoself:
:
$name."开机中.....";//这里还可以用mypc,本类中调用
}
}
classnewpcextendsmypc{
functionpower(){
echo"loading.....";
echomypc:
:
$name;//在继承类中调用,中能用mypc:
:
$name,不可用self
}
}
$pc1=newnewpc();
$pc1->power();
echo"
";
mypc:
:
$name="你的手机";//重新赋值,赋值后在它自己类中和继承类中的值一起改变
$pc1->power();
?
>
面向对象之十一
php
/*
*Createdon2012-3-9上午04:
47:
34
*AuthorbyYUZhigang
*
*今天学习的是接口
*关键字interface创建
*implements接口引用
*
*/
interfacedemo1{
constNAME='名称';//必须为常量
functionfun1();//必须全部为抽象方法,且不用abstract
functionfun2();
}
interfacedemo2{
functionfun3();
functionfun4();
}
interfacedemo3{
constPLAY="播放";
functiongame();
}
//接口多引用
classmypcimplementsdemo1,demo2{//单继承多引用
functionfun1(){
echo"_________";
}
functionfun2(){
echo"########";
}
functionfun3(){
echo"111111111";
}
functionfun4(){
echo"222222222";
}
}
//单继承
classnewpcextendsmypcimplementsdemo3{//继承mypc,且引用接口demo3
functiongame(){
echo"玩游戏
";
}
}
$p=newmypc();
$p->fun2();
echomypc:
:
NAME;
echo"
--------------------
";
$pc=newnewpc();
$pc->game();
echonewpc:
:
PLAY;
?
>
面向对象之十二
php
/*
*Createdon2012-3-9上午05:
35:
22
*AuthorbyYUZhigang
*
*今天学习的是
*/
interfacemyusb{
functiontype();
functionalert();
}
classupanimplementsmyusb{
functiontype(){
echo"2.0";
}
functionalert(){
echo"正在检查U盘驱动.......";
}
}
classmp3implementsmyusb{
functiontype(){
echo"3.0";
}
functionalert(){
echo"正在检查MP3驱动.......";
}
}
classmypc{
functionpcusb($what){
$what->type()."
";
$what->alert();
}
}
$pc=newmypc();
$where=newmp3();
$pc->pcusb($where);
?
>
面向对象之十三
php
/*
*Createdon2012-3-9上午05:
28:
15
*AuthorbyYUZhigang
*
*今天学习的是instanceof多态
*/
classA{}
classB{}
$where=newB;
if($whereinstanceofA){//判断来自哪个类
echo"ComefromclassA";
}
if($whereinstanceofB){
echo"ComefromclassB";
}
?
>
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 余志刚 php 学习 笔记 面向 对象