当前位置: 首页 > wzjs >正文

重庆h5建站广告片制作公司

重庆h5建站,广告片制作公司,seo技术培训课程,百度网站回档怎么能恢复# 深入理解类:ArkTS面向对象编程的核心概念 在编程世界里,面向对象编程(OOP)是一种强大的编程范式,而类则是OOP的核心构建块。在ArkTS语言中,类的设计和使用对于构建复杂、可维护的应用程序至关重要。今天…

# 深入理解类:ArkTS面向对象编程的核心概念

在编程世界里,面向对象编程(OOP)是一种强大的编程范式,而类则是OOP的核心构建块。在ArkTS语言中,类的设计和使用对于构建复杂、可维护的应用程序至关重要。今天,我们就来深入探讨一下ArkTS中类的相关知识。

## 类的基础:声明与实例化

ArkTS里,类声明引入新类型,定义字段、方法和构造函数。以`Person`类为例:

```typescript

class Person {

    name: string = '';

    surname: string = '';

    constructor(n: string, sn: string) {

        this.name = n;

        this.surname = sn;

    }

    fullName(): string {

        return this.name + ' ' + this.surname;

    }

}

```

定义好类后,可用`new`关键字创建实例,像`let p = new Person('John', 'Smith');` ,随后就能调用实例方法,比如`console.log(p.fullName());` 。此外,还能用对象字面量创建实例,不过这需要在可推导类型的上下文中进行。

## 类的成员:字段、方法与构造函数

### 字段:实例与静态的区别

字段是类中声明的变量,分为实例字段和静态字段。实例字段存在于每个类实例上,每个实例都有自己的一套。比如在`Person`类中:

```typescript

class Person {

    name: string = '';

    age: number = 0;

    constructor(n: string, a: number) {

        this.name = n;

        this.age = a;

    }

    getName(): string {

        return this.name;

    }

}

```

通过实例访问实例字段,像`let p1 = new Person('Alice', 25); p1.name;` 。而静态字段用`static`关键字声明,属于类本身,所有实例共享。比如统计`Person`类实例数量时:

```typescript

class Person {

    static numberOfPersons = 0;

    constructor() {

        Person.numberOfPersons++;

    }

}

Person.numberOfPersons;

```

同时,ArkTS要求字段在声明或构造函数中显式初始化,以避免运行时错误。

### 方法:实例与静态的不同行为

类的方法也有实例方法和静态方法之分。实例方法能访问实例字段和静态字段,像计算矩形面积的`RectangleSize`类:

```typescript

class RectangleSize {

    private height: number = 0;

    private width: number = 0;

    constructor(height: number, width: number) {

        this.height = height;

        this.width = width;

    }

    calculateArea(): number {

        return this.height * this.width;

    }

}

let square = new RectangleSize(10, 10);

square.calculateArea();

```

静态方法用`static`声明,只能访问静态字段,通过类名调用,用于定义类整体的公共行为:

```typescript

class Cl {

    static staticMethod(): string {

        return 'this is a static method.';

    }

}

console.log(Cl.staticMethod());

```

### 构造函数:对象初始化的关键

构造函数用于初始化对象状态。若未定义构造函数,会自动生成默认构造函数。派生类构造函数可用`super`调用父类构造函数:

```typescript

class RectangleSize {

    constructor(width: number, height: number) {

        //...

    }

}

class Square extends RectangleSize {

    constructor(side: number) {

        super(side, side);

    }

}

```

构造函数也能重载签名,为不同的初始化方式提供支持。

## 类的进阶特性:继承、方法重写与可见性修饰符

### 继承:代码复用的利器

继承让一个类能继承另一个类的字段和方法。例如:

```typescript

class Person {

    name: string = '';

    private _age = 0;

    get age(): number {

        return this._age;

    }

}

class Employee extends Person {

    salary: number = 0;

    calculateTaxes(): number {

        return this.salary * 0.42;

    }

}

```

子类继承父类成员,但不继承构造函数,还能新增或覆盖父类方法。

### 方法重写:灵活定制行为

子类可重写父类方法,重写方法需保持相同参数类型和相同或派生的返回类型。如:

```typescript

class RectangleSize {

    area(): number {

        return 0;

    }

}

class Square extends RectangleSize {

    private side: number = 0;

    area(): number {

        return this.side * this.side;

    }

}

```

### 可见性修饰符:控制访问权限

可见性修饰符有`private``protected``public``public`是默认修饰符,成员在任何可访问类的地方都可见;`private`修饰的成员只能在类内部访问;`protected`修饰的成员在派生类中也可访问。例如:

```typescript

class C {

    public x: string = '';

    private y: string = '';

    set_y (new_y: string) {

        this.y = new_y;

    }

}

let c = new C();

c.x = 'a';

c.y = 'b';

```

```typescript

class Base {

    protected x: string = '';

    private y: string = '';

}

class Derived extends Base {

    foo() {

        this.x = 'a';

        this.y = 'b';

    }

}

```

## 其他重要概念:抽象类、对象字面量

### 抽象类:定义通用概念

抽象类用`abstract`修饰,用于表示一组具体概念的共有概念,不能直接实例化。例如:

```typescript

abstract class X {

    field: number;

    constructor(p: number) {

        this.field = p;

    }

}

let x = new X(666)

```

抽象类的子类可以是抽象类或非抽象类,非抽象子类可实例化。抽象类中还能定义抽象方法,抽象方法只有声明没有实现,且只能在抽象类中存在。

### 对象字面量:便捷的实例创建方式

对象字面量可创建类实例并提供初始值,在特定上下文能替代`new`表达式。例如:

```typescript

class C {

    n: number = 0;

    s: string = '';

}

let c: C = {n: 42, s: 'foo'};

```

对于`Record`类型,对象字面量也常用于初始化:

```typescript

let map: Record<string, number> = {

    'John': 25,

    'Mary': 21,

}

```

ArkTS中的类为开发者提供了丰富的功能和强大的编程能力。通过合理运用类的各种特性,我们可以编写出结构清晰、易于维护和扩展的代码。无论是开发小型应用还是大型项目,对类的深入理解和熟练运用都是至关重要的。希望这篇博客能帮助大家更好地掌握ArkTS中类的知识,在编程道路上更进一步!


文章转载自:

http://uCDEmbQY.mysmz.cn
http://WydQ5bSc.mysmz.cn
http://wD7SmDS0.mysmz.cn
http://ntFqZVhh.mysmz.cn
http://rRoLIQS2.mysmz.cn
http://Y513sWt9.mysmz.cn
http://zOU9nBlw.mysmz.cn
http://Bjl2AgNm.mysmz.cn
http://lSQVC34W.mysmz.cn
http://AHzHVjvL.mysmz.cn
http://n17YISmf.mysmz.cn
http://6DfwMgfd.mysmz.cn
http://fSoGfStz.mysmz.cn
http://llmKbcIn.mysmz.cn
http://Kc0oapIP.mysmz.cn
http://PEnX7Y0s.mysmz.cn
http://7m2oJdwe.mysmz.cn
http://gz8xon3p.mysmz.cn
http://xfExqGB1.mysmz.cn
http://4wwS5fpI.mysmz.cn
http://BNBbCoqZ.mysmz.cn
http://eSZdBTZS.mysmz.cn
http://dFfr6H7Q.mysmz.cn
http://xX0eLkVr.mysmz.cn
http://EBnF1DYX.mysmz.cn
http://86VByi32.mysmz.cn
http://VUuX512t.mysmz.cn
http://yUHBM9Uf.mysmz.cn
http://0zSe1gVG.mysmz.cn
http://5qZLuRWW.mysmz.cn
http://www.dtcms.com/wzjs/702445.html

相关文章:

  • .net 网站开发书籍设计官网公司
  • 手机做网站自己做长沙装修公司招聘网
  • 网站访问大小网上商城项目设计方案
  • 网站友情链接 关键词经常改动网站开发难不难
  • seo推广营销网站网页设计与制作是前端吗
  • 淘客网站seo怎么做wordpress 不显示评论
  • 增城定制型网站建设wordpress+菜单大小
  • 大连专业制作网站进出口外贸公司
  • 山西做网站如何选择房产中介哪家口碑比较好
  • 网站建设刷赞和vip企业网站做的公司
  • 网站维护一年多少费深圳外贸建站
  • 做搜狗手机网站优化快外贸网站建站费用
  • 网站建设设计 昆山一个完整的工程项目流程
  • 免费asp网站模板天眼查企业查询在线官网
  • 南充房产搜索引擎优化工作主要做好哪些方面
  • 成都天府新区网站建设国内互联网公司排名
  • wordpress总是404西安抖音seo推广
  • 营销型网站建设一般包含哪些内容苏州代理记账
  • 网站建设用的工具来宾住房和城乡建设局网站
  • 帮忙建设公司网站打开网站后直接做跳转
  • 青岛网站seo价格沾化网站建设
  • 哈尔滨网站网站建设网站模板 数据库
  • 网站建设宣传册内容城乡建设部网站广州市
  • 做网站大连微商城开发费用多少
  • 合肥高端网站开发网站建设那家好
  • 赣州本地网站WordPress 黛米付
  • 问答网站建设手机模板网站生成制作软件
  • 做网站如何自动采集图片电子商务网站建设实训目的
  • 网站建设什么科目哪些网站可以免费申请域名
  • 深圳龙华网站建设公司wordpress 质感主题