什么是实例化
实例化(instantiate)是指在面向对象的编程中,把用类创建对象的过程称为实例化。是将一个抽象的概念类,具体到该类实物的过程。实例化过程中一般由类名 对象名 = new 类名(参数1,参数2...参数n) 构成。
简介
在面向对象的编程中,通常把用类创建对象的过程称为实例化,其格式如下:
如 Date date=new Date();就是用日期类创建了一个日期的对象,就叫对象的实例化。
多数语言中,实例化一个对象就是为对象开辟内存空间,或者是不用声明,直接使用new 构造函数名,建立一个临时对象。
使用方法 以PHP为例。
类不同于函数,定义完之后无法直接使用,因为类只是一个抽象的概念,需要通过关键字new来实例化类,才可以使用。类实例化的语法格式如下:变量名=new 类名([构造函数])。其中,变量名可以为任何PHP变量的名称,构造参数取决于类的构造函数,若无构造函数,则圆括号中为空。
实例化一个类后即可使用该类。
列如:
<?php
class People{
public $name;
public function introduceMySelf(){
echo '内容',$this->name.‘内容2’;
}
}
$p=new People();
?>
如果要在类外使用类的属性和方法(前提是该属性或方法是可访问的),需要使用操作符->,语法格式如下:
实例化的类变量名->属性名;
实例化的类变量名->方法名([方法参数]);
使用类的方法与调用函数一样,在圆括号中给出函数参数(没有参数时当然就不用写了)。需要特别注意的是,在使用操作符->引用属性时,属性名是不加符号$的。
使用类自己封装定义本地存储的方法
// 枚举两个存储方式
enum storageType {
L = 'localStorage',
S = 'sessionStorage',
}
// 封装前端操作方法
class SStorage {
storage:Storage; //内置属性
constructor(Type:string) {
this.storage = Type === 'localStorage' ? window.localStorage : window.sessionStorage;
};
// 存储方法
setItem(key:string, value:string) {
this.storage.setItem(key, JSON.stringify(value));
}
// 获取方法
getItem(key:string) {
let value = this.storage.getItem(key);
if(value) {
try {
return JSON.parse(value)
} catch (error) {
return value
}
}else {
console.error('缓存 key' + key + ', 不存在');
return null;
}
}
// 删除方法
removeItem(key:string) {
this.storage.removeItem(key);
}
// 清空方法
clear() {
this.storage.clear();
}
}
// 实例化定义的类及构造函数中的方法 导出
let storageTool = new SStorage(storageType.L);
let sesstionTool = new SStorage(storageType.S);
// 导出
export {
sesstionTool,
storageTool
}
总结:
声明,只生成对象不赋值的过程。
初始化,是给对象赋值的过程。
实例化,是使用new为对象分配内存的过程。