语法格式如下:
class 类名{
字段1:类型
字段2:类型
constructor(参数...) { this.字段 = 参数 }
}
实例化:
const 实例1 = new 类名(参数...)每new一次就去执行一次constructor方法,创建不同的实例。
每次new都要传参数,如果参数是一个一个的传,那如果增加字段了就需要增加相应的参数,如果这个方法有许多地方修改,那就得修改许多地方,怎么办呢?增加一个构造方法呗,不好意思,鸿蒙一个类中只能有一个构造方法,解决这种问题是,构造函数中传接口对象,增加字段只需要在接口对象中添加,类中也新增字段,然后在构造函数中体增加赋值就可以了,就是这个构造函数之前有许多地方调用也不用修改,new的时候 传参数直接一个实例扔给构造方法完事 代码如下:
// 类 // class 类名 { // 字段名:类型 = 初始值 // 字段名?:类型 // } interface ICat{ name: string foods?: string age:number } class Cat { name: string foods?: string age:number constructor(iCat:ICat) { this.name = iCat.name this.foods = iCat.foods this.age = iCat.age } } // 基于类, 创建对象 const c:Cat = new Cat({ name:"猫咪", foods:"肉", age:1 }) c.foods = '大米饭' console.log('大米饭:', c.name.length) let p: Cat = new Cat({ name:"猫咪名字", foods:"猫粮", age:1 }) @Entry @Component struct Index { build() { } }
总结:鸿蒙开发中类的构造函数,不同对象的实例化,需要在构造函数中传不同的值,鸿蒙中没有重载的语法,为了使代码改动最小,构造方法中最好是接收接口对象,因为接口对象的实例化不需要构造方法,在构造方式实体内取到接口对象的值然后赋值给对象即可