实验课程

THIS NAME

实验课程

当前位置: 首页 >> 实验课程 >> 正文

Harmony程序设计-TypeScript基础语法练习

发布日期:2024-03-04    作者:任雪     来源:     点击:

TypeScript基础语法练习

一、实验目的

1)通过DevEco Studio的安装,进一步熟悉HarmonyOS所适用的软件。

2)通过创建工程进一步了解软件为以后的学习铺垫。

二、实验设备与器件

PC机、DevEco Studio工具

三、实验内容

1、假设已经通过DevEco Studio创建了一个基于Empty Page Ability(Java)模板的项目,改项目基于Java UI框架,被命名为MyApplication2Page,表示一个项目中包络两个Java Page。想在在改项目的entry\src\java目录的com.XX.myapplication2page包目录中单击鼠标右键,在弹出的快捷菜单中选择new-ability-empty page ability(java)命令,

//装饰器:用于装饰类、结构、方法和变量,并赋予特殊的含义。
//@Entry:装饰器,表示该自定义组件为入口组件,表示可以通过该组件显示页面
@Entry
//@Component:装饰器,表示该组件是自定义组件
@Component
//struct关键字:被@Component装饰后,具备组件化的能力
struct Index {
 //@State:装饰器,表示组件的状态变量
 //定义变量
 @State message: string = 'Hello arkts';

 //UI描述,以声明的方式来描述UI的结构
 build() {
   //布局方式:RelativeContainer(相对布局)- 子元素复杂的情况
   // Column (线性布局) : 表示子元素以垂直方向为对齐方式
   // Row (线性布局): 表示子元素以水平方向为对齐方式
   RelativeContainer() {
     //文本组件(系统内置组件)
     //this.message: 通过this调用变量
     Text(this.message)
       .id('HelloWorld')
       //字体大小(设置组件的属性)
       .fontSize(50)
       .fontWeight(FontWeight.Bold)
       //组件的对齐规则
       .alignRules({
         center: { anchor: '__container__', align: VerticalAlign.Center },
         middle: { anchor: '__container__', align: HorizontalAlign.Center }
       })
         //事件方法
       .onClick(()=>{
         this.message = '鸿蒙应用开发'
       })
   }
   .height('100%')
   .width('100%')
 }
}

//创建全局变量,在struct外部创建变量,需要添加let/const修饰
let num: number = 1
let message: string = '河北邯郸'

//装饰器:用于装饰类、结构、方法和变量,并赋予特殊的含义。
//@Entry:装饰器,表示该自定义组件为入口组件,表示可以通过该组件显示页面
@Entry
//@Component:装饰器,表示该组件是自定义组件
@Component
//struct关键字:被@Component装饰后,具备组件化的能力
struct Index {
 //@State:装饰器,表示组件的状态变量
 //定义变量
 //struct内部创建的变量,是局部变量
 @State message: string = 'Hello arkts';

 //UI描述,以声明的方式来描述UI的结构
 build() {
   //布局方式:RelativeContainer(相对布局)- 子元素复杂的情况
   // Column (线性布局) : 表示子元素以垂直方向为对齐方式
   // Row (线性布局): 表示子元素以水平方向为对齐方式
   RelativeContainer() {
     //文本组件(系统内置组件)
     //this.message: 通过this调用变量
     //局部变量,必须要用this来调用
     //全部变量不用this调用
     Text(message)
       .id('HelloWorld')
       //字体大小(设置组件的属性)
       .fontSize(50)
       .fontWeight(FontWeight.Bold)
       //组件的对齐规则
       .alignRules({
         center: { anchor: '__container__', align: VerticalAlign.Center },
         middle: { anchor: '__container__', align: HorizontalAlign.Center }
       })
         //事件方法
       .onClick(()=>{
         this.message = '鸿蒙应用开发'
       })
   }
   .height('100%')
   .width('100%')
 }
}

2.对象的创建和使用

//创建类
class Person{
 //属性 - 成员变量
 name: string = ''
 age: number = 0

 //构造方法
 constructor(_name: string,_age: number) {
   this.name = _name;
   this.age = _age;
 }

 //方法
 getInfo(){
   console.log(this.name + "," + this.age)
 }
}

@Entry
@Component
struct ObjectPage {
 @State message: string = 'Hello World';
 //创建对象
 person: Person = new Person('鸿蒙',16);
 build() {
   RelativeContainer() {
     //通过this调用对象的属性
     Text(this.person.name)
       .id('ObjectPageHelloWorld')
       .fontSize(50)
       .fontWeight(FontWeight.Bold)
       .alignRules({
         center: { anchor: '__container__', align: VerticalAlign.Center },
         middle: { anchor: '__container__', align: HorizontalAlign.Center }
       })
   }
   .height('100%')
   .width('100%')
 }
}

3.类的继承

//创建父类
class Father{
 name: string = '';
 age: number = 0;

 //构造方法
 constructor(_name: string,_age: number) {
   this.name = _name;
   this.age = _age;
 }
}
//创建子类
class son extends Father{
 department: string = '';

 constructor(_name: string,_age: number, _department: string) {
   super(_name,_age);
   this.department = _department;
 }
}

@Entry
@Component
struct ExtendsPage {
 @State message: string = 'Hello World';

 build() {
   RelativeContainer() {
     Text(this.message)
       .id('ExtendsPageHelloWorld')
       .fontSize(50)
       .fontWeight(FontWeight.Bold)
       .alignRules({
         center: { anchor: '__container__', align: VerticalAlign.Center },
         middle: { anchor: '__container__', align: HorizontalAlign.Center }
       })
   }
   .height('100%')
   .width('100%')
 }
}

4.模块module

//创建类
//export关键字表示当前ets文件可以被其他文件引用
export class Person{
 //属性 - 成员变量
 name: string = ''
 age: number = 0

 //构造方法
 constructor(_name: string,_age: number) {
   this.name = _name;
   this.age = _age;
 }

 //方法
 getInfo(){
   console.log(this.name + "," + this.age)
 }
}

//引入Personets文件
import {Person} from '../comm/Person'

// //创建类
// class Person{
//  //属性 - 成员变量
//  name: string = ''
//  age: number = 0
//
//  //构造方法
//  constructor(_name: string,_age: number) {
//    this.name = _name;
//    this.age = _age;
//  }
//
//  //方法
//  getInfo(){
//    console.log(this.name + "," + this.age)
//  }
// }

@Entry
@Component
struct ObjectPage {
 @State message: string = 'Hello World';
 //创建对象
 person: Person = new Person('鸿蒙',16);
 build() {
   RelativeContainer() {
     //通过this调用对象的属性
     Text(this.person.name)
       .id('ObjectPageHelloWorld')
       .fontSize(50)
       .fontWeight(FontWeight.Bold)
       .alignRules({
         center: { anchor: '__container__', align: VerticalAlign.Center },
         middle: { anchor: '__container__', align: HorizontalAlign.Center }
       })
   }
   .height('100%')
   .width('100%')
 }
}

5.数据绑定装饰器 - @State

//创建全局变量,在struct外部创建变量,需要添加let/const修饰
let num: number = 1
let message: string = '河北邯郸'

//装饰器:用于装饰类、结构、方法和变量,并赋予特殊的含义。
//@Entry:装饰器,表示该自定义组件为入口组件,表示可以通过该组件显示页面
@Entry
//@Component:装饰器,表示该组件是自定义组件
@Component
//struct关键字:被@Component装饰后,具备组件化的能力
struct Index {
 //@State:装饰器,表示组件的状态变量,能够让组件所在的UI界面刷新。
 //定义变量
 //struct内部创建的变量,是局部变量
 @State message: string = 'Hello arkTs';

 //UI描述,以声明的方式来描述UI的结构
 build() {
   //布局方式:RelativeContainer(相对布局)- 子元素复杂的情况
   // Column (线性布局) : 表示子元素以垂直方向为对齐方式
   // Row (线性布局): 表示子元素以水平方向为对齐方式
   RelativeContainer() {
     //文本组件(系统内置组件)
     //this.message: 通过this调用变量
     //局部变量,必须要用this来调用
     //全部变量不用this调用
     Text(this.message)
       .id('HelloWorld')
       //字体大小(设置组件的属性)
       .fontSize(50)
       .fontWeight(FontWeight.Bold)
       //组件的对齐规则
       .alignRules({
         center: { anchor: '__container__', align: VerticalAlign.Center },
         middle: { anchor: '__container__', align: HorizontalAlign.Center }
       })
         //事件方法
       .onClick(()=>{
         this.message = '鸿蒙应用开发'
       })
   }
   .height('100%')
   .width('100%')
 }
}

上一条:单片机原理及应用-定时器实验 下一条:Harmony程序设计-DevEco Studio开发环境搭建

关闭