HarmonyOS Next快速入门:数据类型和类

##HarmonyOS Next快速入门##HarmonyOS应用开发##教育##

****************************

数据类型

//布尔类型
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")
鸿蒙Next快速入门 文章被收录于专栏

HarmonyOS Next快速入门

全部评论

相关推荐

家人们,我现在真的好纠结。我是26届的,目前还没有实习过。我现在的情况是,想参加秋招,但是感觉自己的简历特别空,没有实习经历会不会秋招直接凉凉啊?可我又听说现在很多公司对26届实习生也不太感冒,说什么不确定性大。而且我最近在准备考公,时间上也有点冲突。要是把时间花在实习上,备考时间就少了。但要是不实习,又怕以后就业有问题😫有没有懂行的友友帮我分析分析:26届现在不实习,秋招找工作真的会很难吗?考公和实习该怎么平衡啊?如果现在不实习,考完公再去找实习还来得及吗?真的太焦虑了,希望大家能给我点建议🙏
小破站_程序员YT:我可能和大家的观点不一样。人的精力是有限的,不能既要还要。你又想实习又想考公最后又要秋招上岸,我觉得哪有那么多的选择。你如果想考上岸,那就全力以赴。如果想秋招上岸,就继续投实习,投没了,就继续准备秋招,秋招不行继续春招。别到最后,考公没上岸,觉得是花了时间浪费在找实习上了, 秋招没上岸,觉得是浪费时间准备考公去了。我是认为很难说可以去平衡 不喜勿喷,可以叫我删除
点赞 评论 收藏
分享
06-12 16:23
已编辑
小米_软件开发(准入职员工)
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务