HarmonyOS NEXT数据类型和类

数据类型

//布尔类型
let isDone: boolean = false;

//数字类型
let decLiteral: number = 2023; //十进制
let binaryLiteral: number = 0b11111100111; //二进制
let octalLiteral: number = 0o3747; //八进制
let hexLiteral: number = 0x7e7; //十六进制
console.log("decLiteral",decLiteral);
console.log("binaryLiteral",binaryLiteral);
console.log("octalLiteral",octalLiteral);
console.log("hexLiteral",hexLiteral);

//字符串,使用双引号( ")或单引号(')表示字符串
let username: string = "Jacky";

//数组
let list1: number[] = [1, 2, 3]; //方式1
let list2: Array<number> = [1, 2, 3]; //方式2

//元组,元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。
let x: [string, number];
x = ['hello', 10]; // OK
x = [10, 'hello']; // Error

//枚举
enum Color {Red, Green, Blue};
let c: Color = Color.Green;

//联合类型
let myFavoriteNumber: string | number;
myFavoriteNumber = 'seven';
myFavoriteNumber = 7;

//Unknown,未知变量
let notSure: unknown = 4;
notSure = 'may be string';
console.log("notSure",notSure);
notSure = false;
console.log("notSure",notSure);

//Null和Undefined
let u: undefined = undefined;
let n: null = null;

//类的定义
class Person {
  private name: string; //属性
  private age: number; //属性

  //构造函数
  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }

  //方法
  public getPersonInfo(): string {
    return `My name is ${this.name} and age is ${this.age}`;
  }
}

//类的调用
let person1 = new Person('Jacky', 18);
let info1 = person1.getPersonInfo();
console.log(info1);

//类的继承
class Employee extends Person {
  private department: string;

  constructor(name: string, age: number, department: string) {
    super(name, age); //调用父级构造函数
    this.department = department;
  }

  public getEmployeeInfo(): string {
    return this.getPersonInfo() + ` and work in ${this.department}`;
  }
}

let person2 = new Employee('Tom', 28, 'HuaWei');
let info2= person2.getPersonInfo();
let eInfo2 = person2.getEmployeeInfo();
console.log(info2);
console.log(eInfo2);

随着应用越来越大,通常要将代码拆分成多个文件,即所谓的模块(module)。模块可以相互加载,并可以使用特殊的指令 export 和 import 来交换功能,来调用另一个模块的函数。

导出

export class Person {
  private name: string; //属性
  private age: number; //属性

  //构造函数
  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }

  //方法
  public getPersonInfo(): string {
    return `My name is ${this.name} and age is ${this.age}`;
  }
}

导入

import { Person } from './Person';

//类的调用
let person1 = new Person('Jacky', 18);
let info1 = person1.getPersonInfo();
console.log(info1);

接口

//接口
interface People {
    say(msg:string):void
}

class Chinese implements People{
    say(msg:string){
        console.log("中国人说",msg);
    }
}

class British implements People{
    say(msg:string){
        console.log("The British say",msg);
    }
}

let man:People=new Chinese();
man.say("中国欢迎您");
man=new British();
man.say("Welcome to the UK")
全部评论

相关推荐

3月刚开很多HC!!!!java笔试题目:用&nbsp;Python&nbsp;实现一个函数,用于计算斐波那契数列的第&nbsp;n&nbsp;项。以下&nbsp;Java&nbsp;代码片段是否存在问题?如果有,请指出并改正。简述&nbsp;C++&nbsp;中指针和引用的区别。实现一个二叉树的中序遍历算法,可使用递归或非递归方式。对于一个无序整数数组,使用快速排序算法对其进行排序,并分析该算法的时间复杂度和空间复杂度。设计一个算法,判断一个字符串是否为回文串,要求时间复杂度尽可能低。简述&nbsp;TCP&nbsp;三次握手和四次挥手的过程,并说明为什么连接建立是三次握手,而连接释放是四次挥手。一台主机的&nbsp;IP&nbsp;地址为&nbsp;192.168.1.100,子网掩码为&nbsp;255.255.255.0,它所在的网络地址和广播地址分别是什么?解释&nbsp;DNS&nbsp;的作用和工作原理。已知有两张表,学生表(student)包含字段学号(s_id)、姓名(s_name)、年龄(s_age),成绩表(score)包含字段学号(s_id)、课程号(c_id)、成绩(grade),写一个&nbsp;SQL&nbsp;语句查询年龄大于&nbsp;20&nbsp;岁的学生的姓名和他们的平均成绩。什么是数据库的事务?ACID&nbsp;特性分别代表什么含义?简述索引的作用以及在什么情况下不适合创建索引。进程和线程的主要区别是什么?在什么场景下适合使用多进程,什么场景下适合使用多线程?请描述操作系统中的页面置换算法有哪些,并简述&nbsp;LRU(最近最少使用)算法的原理。假设系统中有三个进程&nbsp;P1、P2、P3,它们分别需要资源&nbsp;R1、R2、R3,当前资源分配情况如下:P1&nbsp;占用&nbsp;R1&nbsp;并请求&nbsp;R2,P2&nbsp;占用&nbsp;R2&nbsp;并请求&nbsp;R3,P3&nbsp;占用&nbsp;R3&nbsp;并请求&nbsp;R1,请问系统是否处于死锁状态?为什么?如果是,应该如何解除死锁?二面:主要聊实习&nbsp;&nbsp;MongDB&nbsp;&nbsp;Mysql&nbsp;&nbsp;对mongdb的使用&nbsp;(只会用&nbsp;&nbsp;对存储数据的探讨&nbsp;&nbsp;定时任务生成报表&nbsp;使用分布式锁&nbsp;主意分布式时钟问题了解Dubbo吗还知道哪些数据库了解哪些新技术&nbsp;说了说推荐算法聊聊大模型&nbsp;对工作的帮助聊了聊信创&nbsp;&nbsp;&nbsp;达梦&nbsp;人大金仓数据库等给我讲了讲部门业务hr面顺丰科技25届校招内推启动!技术专场!【内推链接】https://campus.sf-express.com/m/?channel=29&amp;amp;amp;referCode=7BJ5G5#/newGraduatesList【内推码】7BJ5G5(招聘信息获取渠道选择“校园大使推荐”,加速进面,有问题随时回复~)招聘岗位:物流、供应链、大数据、算法、研发多个岗位招聘地点:深圳、武汉等即刻投递,offer速得!投递的uu留下姓名缩写+岗位♥ #春招#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#实习#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#内推#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#秋招#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务