什么是面向对象以及实现类的封装

一、 面向对象的编程思想

a) 面向过程的编程思想:自顶向下,逐步细化

b) 面向对象的编程思想:就是在编程的时候尽可能的模拟现实世界

  1. 分析哪些功能(动作)是由哪些实体发出的
  2. 定义这些实体,为其增加相应的属性和功能
  3. 让实体执行这些功能或动作

c) 从面向过程到面向对象的思想的转变:面向过程是对功能进行封装(函数),面向对象是对完成这些功能背后的主体进行封装

二、 面向对象的基本概念

a) 对象:计算机中的一个对象就对应着现实世界中的一个实体

b) 我们是采用属性(变量)来保存数据,采用方法(函数)来管理数据

c) 类的定义:要想得到对象,必须先有类,是通过关键字class来定义的

d) 类的成员:属性(类变量),方法(类函数)、常量(类常量)

e) 利用类得到对象:通过关键字new

f) 对象成员访问符:->   

g) instanceof运算符:双目运算符,左边是一个对象名称,右边是一个类的名称,作用是判断左边的对象是否是右边的类的一个实例,返回一个布尔值!

三、 方法中$this关键字:是一个伪对象,哪个对象调用它,它就属于谁!

四、 构造方法:__construct(),在实例化一个对象的时候,自动调用的!一般都是利用构造方法完成对对象的初始化工作

五、 析构方法:__destruct(),在一个对象消失的时候,自动调用的!一般都是利用析构方法释放对象额外的资源!一个对象消失一般有三种情况:脚本运行结束、直接unset掉,将保存对象的变量重新赋值!

六、 对象的传值与克隆:clone__clone

七、 MySQLDB类的封装

 

class MYSLQDB{
//类属性
public $host; //主机地址
public $port; //端口号
public $user; //用户名
public $pass; //用户密码
public $charset; //设置字符集
public $dbname; //选择数据库
public $link; //保存连接资源

 

//创建构造方法
public function __construct($arr){
//初始化属性的值
$this->host = isset($arr['host']) ? $arr['host']:'localhost';
$this->port = isset($arr['port']) ? $arr['port']:'3306';
$this->user = isset($arr['user']) ? $arr['user']:'root';
$this->pass = isset($arr['pass']) ? $arr['pass']:'';
$this->charset = isset($arr['charset']) ? $arr['charset']:'utf8';
$this->dbname = isset($arr['dbname']) ? $arr['dbname']:'';

 

//连接数据库三部曲
//1,连接数据库
$this->my_connect();
//2,设置字符集
$this->my_charset();
//3,选择数据库
$this->my_dbname();

 

}

 

//定义一个连接数据库的方法
public function my_connect(){
if($link_s = @mysql_connect('$this->host:$this->port',$this->user,$this->pass)){
//连接成功
$this->link = $link_s;
}else{
echo '数据库连接失败<br />';
echo '错误代码:',mysql_errno(),'<br />';
echo '错误信息:',mysql_error(),'<br />';
die;
}
}

 

//定义一个设置字符集的方法
public function my_charset(){
$sql = "set names $this->charset";
$this->my_query($sql);
}

 

//定义选择数据库
public function my_dbname(){
$sql = "use $this->dbname";
$this->my_query($sql);
}

 

//定义sql执行语句
public function my_query($sql){
$result = @mysql_query($sql);
if($result){
return $result;
}else{
echo 'sql语句执行失败<br />';
echo '错误代码:',mysql_errno(),'<br />';
echo '错误信息:',mysql_error(),'<br />';
die;
}
}

 

//定义一个析构方法
public function __destruct(){
//释放连接资源
@mysql_close($this->link);
}
}

 

原文地址:https://www.cnblogs.com/zzmgg/p/6150708.html