php5面向对象入门 (一)

原文作者 刀客羽朋 ,这里重新整理,出处:http://www.cnblogs.com/tograce/category/161526.html

类和对象
类是对一类事物描述,是抽象的、概念上的定义;
对象是实际存在的该类事物的每个个体,因而也称实例(instance)
创建对象的过程称为 创建对象 也称为实例化。

 php中的类是这样定义的:

class person{

 }


new创建对象

<?php
 
class person{
 

 }
 
$p=new person();    //创建对象
?>


php5类的属性

类中的元素主要有两个:属性和方法。
类中声明的变量,即类的属性

<?php
class person{
public $name="noname";  //定义public属性 $name.
}
 
$p=new person();
 
$p->name="tom";        //变更姓名为tom
 echo "his name is ".$p->name;
 
?>

-> 符号调用变量指向对象的属性。
②属性的修饰符除了
public还有private,protected

   public (公开):可以自由的在类的内、外部读取和修改;
   private(私有):只能在这个当前类的内部读取和修改;
   protected(受保护):能够在这个类和类的子类中读取和修改。
③上面的实例将输出:  his name is tom
如果将属性权限改为private,将有错误.

<?php
class person{
private $name="noname";
}
 
$p=new person();
 
$p->name="tom";
 
echo "his name is ".$p->name;
 
?>

如果非要获取属性name的值,难道就不行了,当然是可以的,这就要调用类的方法

php5类的方法
对对象的属性进行的操作称为对象的方法(也称为行为/操作)。
 1<?php
 2class person{
 3private $name="noname";
 4public function getName(){
 5  return $this->name;
 6  }
 7}
 8$p=new person();
 9echo "his name is ".$p->getName();
10?>

① 在方法内部通过 $this-> 符号调用同一对象的属性;
上面的例子,通过方法(函数)getName()就完成了获取private $name的值,调用getName()方法就会通过 return $this->name返回$name的值。但有一点要注意:虽然通过getName(),用户可获取$name,但不能改变他的值,这就是封装的好处。

带参数的方法

可以在方法中加入参数,如下例:
方法中带参数

方法内接受的变量是局部变量,只能在方法内部有效。可以通过向属性传递变量值的方式,让这个(局部)变量应用于整个对象。

如果声明的这个方法有参数,而调用这个方法时没有参数或参数数量不足,系统会报错误,如下例:

Code


还可以在定义方法时,给参数带上默认值:

Code


方法中的参数还可以指向对象,如下例:

Code


构造函数
构造方法又称构造函数,是对象被创建时自动调用的方法,用来完成类初始化的工作。
构造函数和其它函数一样,可以传递参数,可以设计参数默认值。
php5中构造函数的定义:

Code


看看结果是什么样子的?
在类被初始化时,这里的代码会运行
$name is shuwill
在类被初始化时,这里的代码会运行
$name is 书维

面向对象实例
假如有一名为books的数据库:

先写一个数据库配置文件:

<?php
//db_config.php
$db_server="localhost";
$db_user="root";
$db_pwd="tograce";
$db_name="books";
?>


先写一个面向过程方式读取数据库用户的信息。

Code

上面的程序在显示MySQL库中的中文时,呈乱码,修改成如下代码就可以了:

正确显示中文的Code



现在,写一个面向过程方式读取数据库用户的信息。
先要创建类:

Code


做好了准备工作,接下来就简单了:

Code


posted @ 2009-01-02 22:20  尚远  阅读(587)  评论(0编辑  收藏  举报