Blogger Information
Blog 29
fans 0
comment 1
visits 19841
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
11月26日作业: 1. 创建类、实例化、命名空间、类成员、类方法(手写)
风清扬
Original
591 people have browsed it

11月26日作业:

  1. 创建类、实例化、命名空间、类成员、类方法(手写)
  2. 构造方法

:-: 一、创建类
类不好理解,因为概念太抽象。
先说一个比较抽象的,比如动物是一个类,而兔子、猪、猫狗,都是动物类的实例化对象。
类就是一个分类,一个清单。这个类有什么,通过这个类,创建出对象。
对象不是凭空出来的,都是通过类创建出来的。所以咱们是先写类,在创建对象。

创建类

class Animal{

}

调用类(实例化)

$monkey = new Animal(); // 猴子
$rabbit = new Animal(); // 兔子
[danger] 备:类如果只能使用一次,那我们没必须用类,每次直接写代码就可以了。所以类可以实例化多次(N次),次数无限制。

同一个类实例化出来,它们是不一样的
var_dump($monkey == $rabbit);
echo ‘<br>‘;

var_dump($monkey === $rabbit);
echo ‘<br>‘;
检测对象是否是类的实例
var_dump($monkey instanceof Animal);
echo ‘<br>‘;
:-: 二、类属性
关键词: 类属性, 访问限制符, 动态属性
在类里直接写代码,是错误的

错误示例

class Animal{
echo 111;
}
类 是一个类型的集合,它里面有成员的。
类里成员有两种:属性(变量)和行为(方法)。任何类,都有属性和行为。
1、属性(变量)
class People{
$name = ‘杨幂’; //会报错,必须有修饰符
$age = 31; //会报错,必须有修饰符
// 属性 设置了初始值
public $name = ‘杨幂’;
public $age = 31;
}

外部访问:需要通过访问限定符、或修饰符

$yangmi = new People;
echo $yangmi->name;
在类中声明属性变量时,设置它的作用域
作用域(修饰符):目前我们先学习public
public 公有的,类内,类外,子类都是可访问的
protected 受保护的,类内,子类都可以访问
private 私有的,只能类内访问
属性重新赋值

$yangmi->name = ‘欧阳克’;
$yangmi->age = 18;
echo $yangmi->name.$yangmi->age;
2、行为(方法)
关键词: self, $this
每个方法里,都带有$this,用作调用自己类的属性和方法
class People{
// 属性
public $name = ‘杨幂’;
public $age = 31;
// 方法,默认就是public ,不加也是
public function getInfo(){
echo ‘姓名:杨幂,年龄:31’;
return ‘姓名:杨幂,年龄:31’;
}
// 方法
public function getInfo1(){
// self : 当前类
$obj = new self();
// 输出对象属性
return ‘姓名: ‘ .$obj->name .’, 年龄: ‘ . $obj->age . ‘<br>‘;
}
// 方法
public function getInfo2(){
// 因为该方法必须通过对象调用,所有没必要在类中实例化
// 直接引用该类的实例化对象即可
// 在类中使用伪变量: “$this” 引用当前类的实例
// $this = new self(); 相当于先执行了这条语句,尽管你不需要这样做
return ‘姓名: ‘ .$this->name .’, 年龄: ‘ . $this->age . ‘<br>‘;
}
// 方法
public function getInfo3(){
// 当前类
$obj = new People();
$obj->name = ‘欧阳克’;
$obj->age = 18;
// 输出对象属性
return ‘姓名: ‘ .$obj->name .’, 年龄: ‘ . $obj->age . ‘<br>‘;
}
}

// 类实例化
$yangmi = new People();
echo $yangmi->getInfo();
echo $yangmi->getInfo1();
echo $yangmi->getInfo2();
echo $yangmi->getInfo3();
// 查看类中定义的对象方法: public 才会显示出来
$methods = get_class_methods(‘People’);
echo ‘<pre>‘.print_r($methods,true);
echo ‘<hr>‘;

:-: 三、构造方法(魔术方法)
构造方法是类中的特殊方法,在类实例化时会被自动调用,可用来初始化对象成员
调用类的时候,立即执行构造方法,第一个执行的方法。方法的没有位置的先后顺序
构造方法: public function construct(){…} ,也可以跟类名一样的方法
class People{
// 属性
public $name;
public $age;
// 构造方法
public function
construct($name, $age){
echo ‘开始执行’;
$this->name = $name;
$this->age = $age;
}
// 方法
public function getInfo(){
return ‘姓名: ‘ .$this->name .’, 年龄: ‘ . $this->age . ‘<br>‘;
}
}
// 实例化
$obj = new People(‘杨幂’,31);
echo $obj->getInfo();

Correcting teacher:查无此人查无此人

Correction status:qualified

Teacher's comments:你这一份作业,怎么写了两次?
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post