基础知识
Posted zhouwanqiu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基础知识相关的知识,希望对你有一定的参考价值。
一、面向对象的学习
1)语法的学习
OOP(面向对象的编程)
2)思想的学习
OOA(面向对象的分析)
OOD(面向对象的设计)
二、什么是面向对象
1)操作对象
2)从程序的执行者变成了程序的管理者
三、什么是对象
1)万物皆对象
2)实实在在的一个独立个体
四、面向对象的目标
1)解决面向过程的缺陷(包括:代码冗余较大、不利于协同开发、开发效率极低、代码维护困难、程序的扩展性差)
2)达到高可扩展性、高可重用性、高灵活性、高内聚(内部联系)、低耦合(外部联系)
五、面向对象的特点
封装、继承、多态
六、对象的组成
1)成员属性(描述)
2)成员方法(功能、行为)
七、什么是类
类是具有相同属性和相同行为的对象的一类总称
八、类和对象的关系
1)先有类,再有对象
2)类是用来描述对象的
3)类是对象的抽象化
4)对象是类的实例化
九、类的组成部分
成员属性(一个成员属性就是一个变量)
成员方法(一个成员方法就是一个函数)
十、如何声明一个类
1)简单格式:
class 类名{
[成员属性] //也叫成员变量
[成员方法] //也叫成员函数
}
2)完整格式:
class 类名 [extends 父类] [implements 接口1[,接口2...]]{
[成员属性]
[成员方法]
}
类的声明需要注意的:
1.成员属性的声明,属性前必须要有修饰符
修饰符 $变量名[=默认值];
常用属性修饰符:public、protected、private、static、var
2.成员属性可以不给默认值
3.成员属性就是一个变量,其默认值不可以是另一个变量名、带运算符的表达式、方法或函数调用
public $var1=1+2; //错误格式
public $var2=self::myStaticMethod(); //错误格式
public $var3=$var4; //错误格式
4.成员方法的声明,可以没有修饰符,也可以没有返回值
[修饰符] function 方法名(参数1,...){
[方法体]
[return 返回值]
}
修饰符:public、protected、private、static、abstract、final
5.成员方法就是一个函数,必须和对象相关不能是一些无意义的操作
十一、对象的实例化
1)需要通过类来进行实例化对象:
$对象名称=new 类名称();
$对象名称=new 类名称([参数1,...]);
2)成员属性和成员方法都必须藉由该对象来进行访问、调用
3)对象的访问须使用 -> 来访问
4)类的名称不区分大小写
5)类可以在任意位置调用
例:
class Person{ //[成员属性] //姓名 var $name; //性别 var $sex; //年龄 var $age; //[成员方法] //吃饭 function eat(){ echo "爱吃肉"; } //睡觉 function sleeep(){ echo "爱睡懒觉"; } //说话 function speak(){ echo "不爱BB"; } } $person=new Person; $person->name="autumn"; $person->sex="X"; $person->age=25; echo "<pre>"; var_dump($person); echo "</pre>"; echo $person->name.$person->sex.$person->age.$person->eat().$person->sleeep().$person->speak();
object(Person)#1 (3) {
["name"]=>
string(6) "autumn"
["sex"]=>
string(1) "X"
["age"]=>
int(25)
}
爱吃肉爱睡懒觉不爱BBautumnX25
十二、$this 关键字
1)$this就代表本对象
2)$this只能在类的内部去使用
3)$this可以在类中调用本对象自己的成员属性和成员方法
4)在类的内部的多个成员方法中利用“return $this;”即可实现链式操作
例1:
class Person{ //[成员属性] //姓名 var $name; //性别 var $sex; //年龄 var $age; //[成员方法] function info(){ echo "姓名:".$this->name."性别:".$this->sex."年龄:".$this->age; } } $p1=new Person; $p1->name="admin1"; $p1->sex="男"; $p1->age=20; $p1->info(); echo "<hr>"; $p2=new Person; $p2->name="admin2"; $p2->sex="女"; $p2->age=25; $p2->info(); echo "<hr>"; $p3=new Person; $p3->name="admin3"; $p3->sex="男"; $p3->age=30; $p3->info();
姓名:admin1性别:男年龄:20
姓名:admin2性别:女年龄:25
姓名:admin3性别:男年龄:30
例2:
class Person{ //[成员属性] //姓名 var $name; //性别 var $sex; //年龄 var $age; //[成员方法] function eat(){ echo "吃晚饭"; return $this; } function speak(){ echo "不爱BB"; return $this; } function sleeep(){ echo "上床睡觉"; return $this; } function offlights(){ echo "关灯"; $this->speak(); } } $person=new Person; $person->eat()->speak()->sleeep()->offlights();
吃晚饭不爱BB上床睡觉关灯不爱BB
以上是关于基础知识的主要内容,如果未能解决你的问题,请参考以下文章
[Go] 通过 17 个简短代码片段,切底弄懂 channel 基础