类声明引入一个新类型,并定义其字段、方法和构造函数

定义类后,可以使用关键字new创建实例

属性:必须要给初始值

构造函数:给属性初始值,初始化属性

可以使用对象字面量创建实例

字段

字段是直接在类中声明的某种类型的变量。

类可以具有实例字段或者静态字段。

实例字段

实例字段存在于类的每个实例上。每个实例都有自己的实例字段集合。

静态字段

使用关键字static将字段声明为静态。

静态字段属于类本身,类的所有实例共享一个静态字段。

要访问静态字段,需要使用类名

字段初始化

为了减少运行时的错误和获得更好的执行性能, ArkTS要求所有字段在声明时或者构造函数中显式初始化。这和标准TS中的strictPropertyInitialization模式一样。

方法
方法属于类。

类可以定义实例方法或者静态方法。

静态方法属于类本身,只能访问静态字段。而实例方法既可以访问静态字段,也可以访问实例字段,包括类的私有字段。

静态方法

使用关键字static将方法声明为静态。

静态方法属于类本身,只能访问静态字段。

静态方法定义了类作为一个整体的公共行为。 必须通过类名调用静态方法

继承

一个类可以继承另一个类(称为基类),并使用以下语法实现多个接口

继承类继承基类的字段和方法,但不继承构造函数。

继承类可以新增定义字段和方法,也可以覆盖其基类定义的方法。

基类也称为“父类”或“超类”。继承类也称为“派生类”或“子类”。

包含implements子句的类必须 实现列出的接口中定义的所有方法, 但使用默认实现定义的方法除外

父类访问

关键字super可用于访问父类的实例字段、实例方法和构造函数。

在实现子类功能时,可以通过该关键字从父类中获取所需接口

方法重写与重载
子类可以重写其父类中定义的方法的实现

重写的方法必须具有与原始方法相同的参数类型和相同或派生的返回类型。

通过重载签名,指定方法的不同调用。具体方法为,为同一个方法写入多个同名但签名不同的方法头,方法实现紧随其后,如果两个重载签名的名称和参数列表均相同,则为错误

构造函数
类声明可以包含用于初始化对象状态的构造函数

如果未定义构造函数,则会自动创建具有空参数列表的默认构造函数

在这种情况下,默认构造函数使用字段类型的默认值来初始化实例中的字段

派生类的构造函数

构造函数函数体的第一条语句可以使用关键字super来显式调用直接父类的构造函数。

构造函数重载签名

我们可以通过编写重载签名,指定构造函数的不同调用方式。

具体方法为,为同一个构造函数写入多个同名但签名不同的构造函数头,构造函数实现紧随其后。

可见性修饰符

类的方法和属性都可以使用可见性修饰符。

Public(公有)

public修饰的类成员(字段、方法、构造函数)在程序的任何可访问该类的地方都是可见的。

Private(私有)

private修饰的成员不能在声明该成员的类之外访问

Protected(受保护)

protected修饰符的作用与private修饰符非常相似,不同点是protected修饰的成员允许在派生类中访问

getter和setter

setter和getter可用于提供对对象属性的受控访问

对象字面量

对象字面量是一个表达式,可用于创建类实例并提供一些初始值。

它在某些情况下更方便,可以用来代替new表达式。

Record类型的对象字面量

泛型Record<K, V>用于将类型(键类型)的属性映射到另一个类型(值类型)。

常用对象字面量来初始化该类型的值

类型K可以是字符串类型或数值类型,而V可以是任何类型

接口

接口声明引入新类型。

接口是定义代码协定的常见方式。

接口属性

接口属性可以是字段、getter、setter或getter和setter组合的形式。

属性字段只是getter/setter对的便捷写法 

接口继承

继承关键字:extends

泛型类型和函数

泛型类型和函数允许创建的代码在各种类型上运行,而不仅支持单一类型。

通配符
泛型中通配符

我们在定义泛型类,泛型方法,泛型接口的时候经常会碰见很多不同的通配符,比如 T,E,K,V 等等

常用的 T,E,K,V,? 本质上这些个都是通配符。

通常情况下,T,E,K,V,?是这样约定的:

?表示不确定的  

类型 T (type) 表示具体的一个类

K V (key value) 分别代表键值中的Key Value

E (element) 代表Element

?无界通配符

泛型函数

使用泛型函数可编写更通用的代码

泛型默认值

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐