持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第6天,点击查看活动详情
1. TypeScript 哪些技能基于类?
TypeScript 类是 OOP 的技术基石,包括类、属性封装丶继承、多态、抽象丶泛型。紧密关联的技术包括方法重写,方法重载,构造器,构造器重载,类型守卫,自定义守卫,静态方法、属性,关联引用属性,多种设计模式等。
oop一般指面向对象程序设计。 面向对象程序设计(Object Oriented Programming)作为一种新方法,其本质是以建立模型体现出来的抽象思维过程和面向对象的方法。
2. 什么是类
定义:类就是拥有相同属性和方法的一系列对象的集合,类是一个摸具,是从这该类包含的所有具体对象中抽象出来的一个概念,类定义了它所包含的全体对象的静态特征和动态特征。
类有静态特征和动态特征【以大家最熟悉的人类为例】
静态特征【软件界叫属性】姓名,年龄,地址,身份证号码,联系方式,家庭地址,微信号
动态特征【软件界叫方法】吃饭,走路
【再看桌子类】
静态特征【属性】高度,宽度,颜色,价格,品牌,材质
动态特征【方法】承载
【来看订单类】
静态特征 【属性】 订单号【订单id】,下单时间,下单顾客,订单详情,顾客微信,收件地址,负责客服
动态特征 【方法】 下单,修改订单,增加订单,删除订单,查询订单,退单 【这一些方法真正开发会归为OrderService 类】 但从广义来说都同属于订单系列类的方法。
- 举个🌰
// 姓名 年龄 身份证号码 联系方式 家庭地址 微信号
class Person {
// 静态属性
//
public name: string = 'noname' // 姓名,初始值为noname
public age: number = 0 // 年龄,初始值为0
public idcard: string = '0' // 身份证,初始值为0
public phone: string = '13000000000'// 联系方式,初始值为13000000000
public addr: string = '广东省深圳市' // 家庭地址,初始值为广东省深圳市
public wx: string = 'xiaohe' // 微信号,初始值为xiaohe
// 对象的变量 = 实例的变量 = 类的(非静态)属性 = 简称属性
// 实例属性或者对象属性
// 有部分属性如果不需要修改,那么可以不传,直接获取默认值。
constructor(_name: string, _age: number, _phone: string) {
this.name = _name
this.age = _age
this.phone = _phone
}
// 定义公开的方法
public playGameFn(wath: string, who: string, address: string): void {
console.log(`${ this.name }和${ who }在${ address }里玩${ wath }`)
}
}
const zs = new Person('张三', 18, '13000000001')
zs.playGameFn('超级马里奥', '李四', '科兴科技园')
console.log(zs)
最后
公众号:
小何成长,佛系更文,都是自己曾经踩过的坑或者是学到的东西有兴趣的小伙伴欢迎关注我哦,我是:
何小玍。大家一起进步鸭