面向对象基础
面向对象的关键字说明
面向对象关键字:基于面向对象开发时,所用到的一些关键字,用来表明一些结构和类型
- 类:定义面向对象主体的最外层结构,包裹主体的数据和功能,共性事物的代表
- 对象:是某类事物的具体代表,是实际数据和功能操作的具体单元,也被称之为实例
- 实例化:new,从一个抽象的概念得到符合抽象概念的具体实例的过程
- 类成员:member,指类class中的所有内容,类成员有三种
- 属性:在class中创建的变量
- 方法:class结构中创建的函数
- 类常量:const,在class中创建的常量
面向对象简单技术实现
- class 声名 类
- 类名:驼峰命名
- 大括号:只有在大括号里面的东西才是类成员,大括号里面的大括号不算
class name{
}
- 实例化:产生对象
new 类名;
new 类名(); #较多
- 对象:一般用变量保存
$object = new classname();
步骤:1,根据需求产生类的结构 2,需要使用时实例化
demo
<?php
class Nothing{
}
$nothing = new Nothing();
var_dump($nothing);
运行结果
类成员
- 属性和方法需要使用访问修饰限定修饰符,暂时使用public
- 成员访问:属性和方法都属于对象访问,类常量属于类访问
- 对象访问属性和方法,使用->
自己简单写个例子好了
- 对象访问属性和方法,使用->
<?php
class Student{
const STUDENT_NUMBER = 27;
public $name;
public $number;
public $sex;
public function print(){
echo __CLASS__;
#魔术方法,打印类名
}
}
成员访问方法:必须通过对象访问
属性访问:增删改查
<?php
class Student{
const STUDENT_NUMBER = 27;
public $name;
public $number;
public $sex;
public function print(){
echo "\n".__CLASS__;
#魔术方法,打印类名
}
}
$stu = new Student();
#增
$stu -> tall;
$stu -> height = 180;
#删除
unset($stu -> number);
#改
$stu -> name = "Tom";
#查
var_dump($stu -> name);
echo "\n";
var_dump($stu);
运行情况
访问方法
$stu -> print();
打印出来类的名字
通常,我们访问属性,只用改和查就够了
访问修饰限定符
概念
访问修饰限定符:用在属性或者方法前修饰的关键字,是用来控制属性或者方法的访问位置
- 分类
- public,公有,类内类外都可
- protected,受保护,只允许在相关类内部访问
- private,私有,只允许在定义类内部访问
方法可以没有没有修饰限定符,默认public
类内部对象
概念
$this 方法内部内置的一个对象,会自动指向来调用方法的对象
步骤
1,声明类结构
2,明确私有成员,不限定成员的访问限定修饰符
3,私有成员需要在某种情况下被访问:增加方法,在方法里使用$this访问
直接看代码好了
<?php
class Saler{
public $count = 100;
public function getV(){
echo $count; //会报错,提示未定义变量
}
}
$s = new Saler();
$s -> getV();
<?php
class Saler{
public $count = 100;
public function getV(){
var_dump($this);
echo "<br>" . $this -> count;
}
}
$s = new Saler();
$s -> getV();
运行结果
注意,$this对象是在类内部访问的,因此可以访问类的所有的属性和方法,不受访问修饰限定符的限制
this:是系统在方法内置的对象通用名字,对象在调用方法的时候,系统会自动找到对象所保存的内存地址(heap)然后把地址赋给this 本质:局部变量