掌握鸿蒙开发中类与对象创建技巧
·
class类是实例化对象的模板,可以批量创建对象
语法:定义类 class 类名(首字母大写){ 可以放属性(字段)、方法、构造函数 }
1、实例属性
使用类:const或let 对象:类型=new 类型
定义类时需要给属性初始化值,或者用?可选链操作符
// 定义类
class Person {
// 实例属性
// 语法:1.属性名(字段名):类型 = 值 2、属性名(字段名)?:类型
name:string='杨幂'
food?:string
}
//使用类 创建实例化对象
const ym:Person=new Person()
console.log(`name`, ym.name)
console.log(`food`,ym. food?.length)
步骤:定义一个类型
New一个对象,里面是初始值,然后才可以访问
?是可选链操作符,可以有可以没有
Ps:字符串也有长度,可以获取字符串的长度
//定义类
class Pig{
name:string='妮妮'
height?:number
weihgt:number=12
age:number=3
}
//new一个对象
let nini:Pig=newPig()
console.log('',nini.name) //妮妮
console.log('',nini?.height) //undefined
console.log('',nini.weihgt) //12
console.log('',nini.age) //3
2、构造函数
因为Class本身要有初始值,给一个构造函数 constructor(形参){ } ,自定义初始值,就不需要真实的赋值。

批量化赋值
class Person{
//实例属性
name:string
age:number
//构造函数 对实例属性赋值
constructor (name:string,age:number){
this.name=name
this.age=age
}
}
// 实例化对象
const ym:Person=new Person('杨幂',36)
console.log('',y.name)
const yy:Person =new Person('杨洋',18)
console.log('',yy.name)
constyz:Person = new Person('杨紫',32)
console.log('',yz.name)
const yd:Person=new Person('杨迪',36)
console.log('', yd.name)
New的作用:
1)创建一个空对象,2)执行构造函数,
3)在构造函数中将this指向新对象,4)返回新对象
class Dog{
name:string
age:number
constructor(name:string,age:number){
this.name=name
this.age=age
}
}
const nini:Dog=new Dog('妮妮',3) //括号不填是新对象没有值,class类没有初始值会报错
const kaka:Dog=new Dog('卡卡',10)
console.log('',nini.name)
console.log('',kaka.age)
3、实例方法

语法:自定义方法名(参数:类型【这里是形参】){ 业务处理,return是一种 }
class Students {
// 实例属性
name:string
age :number
constructor(name:string, age:number){
this.name = name
this.age = age }
// 实例方法
// 语法:方法名(参数:类型,...):返回值类型{业务处理 }
// 返回值类型 可省略 内部可类型推断
study(content:string):string{
return content
}
play(like:string){
console.log(`我叫${this.name},我喜欢玩${like}~`)
}

class Dog{
name:string
age:number
constructor(cname:string,cage:number){
this.name=cname
this.age=cage
}
//方法名也可以自定义
play(like:string){
return like}
const nini:Dog=new Dog('妮妮',3)
nini.play('','弹力球') //调用方法,传参
console.log(`${nini.name}喜欢玩${nini.play('弹力球')})
4、静态属性、方法

实例化属性、方法和静态属性、方法的区别:
1)存储数据不同,实例->私有,静态->公共;
2)定义时,静态需要关键字static;
3)前者调用时需要实例化对象调用,静态要有类调用
5、继承类
类可以通过继承,快速获取另一个类的字段和方法
使用:先有父类,class 子类名 extends 父类名{ 属性、方法、构造函数 }


6、Super调用父类的函数
子类通过 super 可以访问父类的实例字段、实例方法和构造函数

7、Instanceof检查实例化对象是否属于某个类
写法:实例对象 instanceof class 返回值是true或false
检查实例是否属于某个类
![]()
更多推荐


所有评论(0)