php类与对象的基本概念
2014-05-20 17:00
691 查看
php面向对象设计
对象相比数组的优点:不仅可以存储多个数据,还可以将函数存在对象中
对象的三大特性:封装、继承、多态
面向对象编程(object oriented programming 即oop),其达到了编程代码的重用性、灵活性和扩展性更加简洁、容易维护。php又不是纯的面向对象编程,其也可以是面向过程编程。
1.面向对象和面向过程的区别?
面向过程:就是在整个项目中最小单位都是由函数组成的
面向对象:就是在整个项目中最小单位都是由对象组成的
2.什么是对象
对象,可以说世间万物都是。就是一个实体,在现实生活中能够描述出来的。例如:桌子、电脑等
3.对象中有什么?
对象:成员
成员属性==变量-->定义对象的外观和状态
成员方法==函数-->定义对象的功能
4.什么是类?
分类、类型、自己类型
就是给一个东西分类别,就是在这个类中定义属性和方法
例如给鸟定义属性和方法
5、类与对象之间的一个关系
声明类-->实例化对象(创建对象)-->用对象
一句话就是:类是对象的声明,对象是类的实例
类是抽象的,代表了一类的事物,现实生活中的具体事物
类是对象的模板,对象是类的具体实例【就是生活中所能描述出来的一个具体的东西,人(一种食物的类别,即类,这里面的内容是每个人都通有的东西)-->黑人、白人、黄种人(具体的一个对象)】
① 类的声明
修饰符 class 类名{
成员
}
案例:
<?php
//类的声明
class Cat{
public $name;
public $age;
public $color;
}
//实例化对象
$cat1=new Cat();//也可不用小括号()
$cat1->name="小白";//->是指向的意思
$cat1->age=2;
$cat1->color="白色";
$cat2=new Cat();
$cat2->name="小黑";
$cat2->age=2;
$cat2->color="黑色";
//对象的使用
$findName="小白";
if($cat1->name==$findName){
echo $cat1->name."<br/>".$cat1->age."<br/>".$cat1->color;
}
if($cat2->name==$findName){
echo $cat2->name."<br/>".$cat2->age."<br/>".$cat2->color;
}
?>
②如何定义一个类的文件名
专门定义一个类的文件名应该这样定义:类名.class.php
例如:Cat.class.php
<?php
class Person{
public $name;
public $age;
}
$a=new Person();
$a->name="小明";
$a->age=20;
$b=$a;
var_dump($a);
echo "<br/>";
var_dump($b);
echo $a->name;
echo "<br/>".$b->name;
?>
图解
内存的引申
代码
$a=78;
$b=&$a;//&引用的而是地址
$b=$b+8;//$b在内存中找到的是$a的地址,通过地址找到值然后再加8,所以$a的地址的值就变成了86
echo $a."||".$b;//结果为86||86
图解
函数使用对象
class Person{
public $name;
public $age;
}
$a=new Person();
$a->name="小明";
$a->age=20;
function test2($b){//对象传递的是地址
$b->name="倪22";
}
function test($b){
$b->name="倪华";
test2($b);
}
test($a);
echo $a->name;//结果为倪22
函数中传递的基本类型是什么?
其传递的是具体的值
$a=1;
$b=true;
$c="2fff";
function test3($a,$b,$c){//执行完之后就会释放栈,其并没有改变堆中的值,所以
$a=3;
$b=false;
$c="2frrf";
}
echo $a."||".$b."||".$c;//在外层echo的时候打印出的还是外层变量的值
要想改变值就要在变量前加个地址符号&
function test3(&$a,&$b,&$c){//引用变量的地址
$a=3;
$b=false;
$c="2frrf";
}
成员方法的理解:
class Person{
public $name;
public $age;
public function speak(){
echo "你好,世界!";
}
}
$a=new Person();
$a->name="小明";
$a->age=20;
$a->speak();//方法的调用,后必须加()
成员方法的细节问题:
在实际开发中使用类
将一个对象放在另外一个文件中去调用
例如:
Person.class.php//这个文件中只用来定义的
<?php
class Person{
public $name;
public $age;
public function speak(){
echo "你好,世界!";
}
public function jisuan($n){
$res=0;
for($i=1;$i<=$n;$i++){
$res+=$i;
}
return $res;
}
public function max22($arr){//如果想在函数中改变外层传过来的数组中的元素值,就必须&$arr这样写(就是传的引用地址);否者就传的是值,在函数执行完了之后就释放栈
$arr[0]=100;
$maxValue=$arr[0];
$maxIndex=0;
for($i=0;$i<count($arr);$i++){
if($maxValue<$arr[$i]){
$maxValue=$arr[$i];
$maxIndex=$i;
}
}
return $maxValue;
}
}
?>
在test.php中使用
test.php
<?php
require_once 'Person.class.php';
//使用对象
$a=new Person();
$a->name="小明";
$a->age=20;
$a->speak();
$b=$a->jisuan(10);
$myarr=array(12,24,93);
$max33=$a->max22($myarr);
print_r($myarr);
echo "max=".$max33;
?>
对象相比数组的优点:不仅可以存储多个数据,还可以将函数存在对象中
对象的三大特性:封装、继承、多态
面向对象编程(object oriented programming 即oop),其达到了编程代码的重用性、灵活性和扩展性更加简洁、容易维护。php又不是纯的面向对象编程,其也可以是面向过程编程。
1.面向对象和面向过程的区别?
面向过程:就是在整个项目中最小单位都是由函数组成的
面向对象:就是在整个项目中最小单位都是由对象组成的
2.什么是对象
对象,可以说世间万物都是。就是一个实体,在现实生活中能够描述出来的。例如:桌子、电脑等
3.对象中有什么?
对象:成员
成员属性==变量-->定义对象的外观和状态
成员方法==函数-->定义对象的功能
4.什么是类?
分类、类型、自己类型
就是给一个东西分类别,就是在这个类中定义属性和方法
例如给鸟定义属性和方法
5、类与对象之间的一个关系
声明类-->实例化对象(创建对象)-->用对象
一句话就是:类是对象的声明,对象是类的实例
类是抽象的,代表了一类的事物,现实生活中的具体事物
类是对象的模板,对象是类的具体实例【就是生活中所能描述出来的一个具体的东西,人(一种食物的类别,即类,这里面的内容是每个人都通有的东西)-->黑人、白人、黄种人(具体的一个对象)】
① 类的声明
修饰符 class 类名{
成员
}
案例:
<?php
//类的声明
class Cat{
public $name;
public $age;
public $color;
}
//实例化对象
$cat1=new Cat();//也可不用小括号()
$cat1->name="小白";//->是指向的意思
$cat1->age=2;
$cat1->color="白色";
$cat2=new Cat();
$cat2->name="小黑";
$cat2->age=2;
$cat2->color="黑色";
//对象的使用
$findName="小白";
if($cat1->name==$findName){
echo $cat1->name."<br/>".$cat1->age."<br/>".$cat1->color;
}
if($cat2->name==$findName){
echo $cat2->name."<br/>".$cat2->age."<br/>".$cat2->color;
}
?>
②如何定义一个类的文件名
专门定义一个类的文件名应该这样定义:类名.class.php
例如:Cat.class.php
<?php
class Person{
public $name;
public $age;
}
$a=new Person();
$a->name="小明";
$a->age=20;
$b=$a;
var_dump($a);
echo "<br/>";
var_dump($b);
echo $a->name;
echo "<br/>".$b->name;
?>
图解
内存的引申
代码
$a=78;
$b=&$a;//&引用的而是地址
$b=$b+8;//$b在内存中找到的是$a的地址,通过地址找到值然后再加8,所以$a的地址的值就变成了86
echo $a."||".$b;//结果为86||86
图解
函数使用对象
class Person{
public $name;
public $age;
}
$a=new Person();
$a->name="小明";
$a->age=20;
function test2($b){//对象传递的是地址
$b->name="倪22";
}
function test($b){
$b->name="倪华";
test2($b);
}
test($a);
echo $a->name;//结果为倪22
函数中传递的基本类型是什么?
其传递的是具体的值
$a=1;
$b=true;
$c="2fff";
function test3($a,$b,$c){//执行完之后就会释放栈,其并没有改变堆中的值,所以
$a=3;
$b=false;
$c="2frrf";
}
echo $a."||".$b."||".$c;//在外层echo的时候打印出的还是外层变量的值
要想改变值就要在变量前加个地址符号&
function test3(&$a,&$b,&$c){//引用变量的地址
$a=3;
$b=false;
$c="2frrf";
}
成员方法的理解:
class Person{
public $name;
public $age;
public function speak(){
echo "你好,世界!";
}
}
$a=new Person();
$a->name="小明";
$a->age=20;
$a->speak();//方法的调用,后必须加()
成员方法的细节问题:
在实际开发中使用类
将一个对象放在另外一个文件中去调用
例如:
Person.class.php//这个文件中只用来定义的
<?php
class Person{
public $name;
public $age;
public function speak(){
echo "你好,世界!";
}
public function jisuan($n){
$res=0;
for($i=1;$i<=$n;$i++){
$res+=$i;
}
return $res;
}
public function max22($arr){//如果想在函数中改变外层传过来的数组中的元素值,就必须&$arr这样写(就是传的引用地址);否者就传的是值,在函数执行完了之后就释放栈
$arr[0]=100;
$maxValue=$arr[0];
$maxIndex=0;
for($i=0;$i<count($arr);$i++){
if($maxValue<$arr[$i]){
$maxValue=$arr[$i];
$maxIndex=$i;
}
}
return $maxValue;
}
}
?>
在test.php中使用
test.php
<?php
require_once 'Person.class.php';
//使用对象
$a=new Person();
$a->name="小明";
$a->age=20;
$a->speak();
$b=$a->jisuan(10);
$myarr=array(12,24,93);
$max33=$a->max22($myarr);
print_r($myarr);
echo "max=".$max33;
?>
相关文章推荐
- java简单总结1(对象的基本概念)
- 面向对象基本概念
- 面向对象的基本概念
- 学习面向对象 之 面向对象的基本概念:对象和其他基本要素
- 学习面向对象之面向对象的基本概念:对象和其他基本要素
- 第1章 Java基本概念及环境配置——FAQ1.02 面向对象程序设计的基本特征有哪些?
- Role分析模式(一) 角色对象基本概念
- VB.Net中文教程(8) 对象(Object)基本概念
- 面向对象的基本概念(二)--UML.类之间的关系
- 面向对象程序设计的几个基本概念
- 面向对象基本概念
- Java与C++在面象对象基本概念上的区分
- 面向对象基本概念
- 基本概念:对象
- 关于对象与引用之间的一些基本概念。
- C#2.0学习3--面向对象基本概念
- Role分析模式:角色对象基本概念
- 面向对象的基本概念
- 面向对象基本概念
- 面向对象的基本概念(一)