鸿蒙南北向开发基础及项目实战教程 课件5.2 ArkTS开发语言基础_第1页
鸿蒙南北向开发基础及项目实战教程 课件5.2 ArkTS开发语言基础_第2页
鸿蒙南北向开发基础及项目实战教程 课件5.2 ArkTS开发语言基础_第3页
鸿蒙南北向开发基础及项目实战教程 课件5.2 ArkTS开发语言基础_第4页
鸿蒙南北向开发基础及项目实战教程 课件5.2 ArkTS开发语言基础_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

5.2ArkTS开发语言基础

本章主要讲述鸿蒙ArkTS开发语言基础

。通过学习本节将能够了解鸿蒙ArkTS开发语言基础

。通过本节学习可以熟悉:ArkTS变量的声明与类型ArkTS数组与动态数组ArkTS函数与箭头函数ArkTS类与接口ArkTS模块的应用ArkTS变量的声明与类型ArkTS数组与动态数组ArkTS函数与箭头函数ArkTS类与接口ArkTS模块的应用ArkTS变量的声明与类型(1/3)ArkTS语言中以let关键词开头的语句声明变量:let

变量名:

类型=初始值;lets:string=‘hello’;//变量声明时指定变量类型lets2=‘hello’;//变量声明时不指定类型,由编译器自动识别

所有变量的数据类型都必须在声明时指定,但是一个变量的声明语句中包含了初始值,那可以不指定其类型,而是由编译器指定:通过const关键词声明只读变量:const

s:string=‘hello’;//方式1const

s2=‘hello’;//方式2ArkTS变量的声明与类型(2/3)ArkTS常用的基础数据类型:

number:数字类型,支持任意大小的整数与浮点数,并支持十进制、二进制(0b开头)、八进制(0o开头)和十六进制(0x开头)等数据。

string:字符串类型,用于描述文本信息,可以使用双引号(")或单引号(')来表示字符串。

boolean:布尔类型,用于标识真(true)和假(false)。ArkTS变量的声明与类型(3/3)

可在DevEcoStudio编辑环境中,双击打开Index.ets源文件,并在源文件首部输入代码语句,然后点击图中右侧的“Previewer”进入窗口预览,相关的输出信息就会在底部的Log窗口中显示出来ArkTS变量的声明与类型ArkTS数组与动态数组ArkTS函数与箭头函数ArkTS类与接口ArkTS模块的应用ArkTS数组与动态数组(1/2)

数组是多个同类型变量的集合,ArkTS中声明数组语句:let数组名:变量类型[]=[变量值1,变量值2...];letarr1:number[]=[1,2,3];

声明一个包含3个number变量的数组,初始值分别为1、2、3,

代码语句:也可以先声明数组,并指定数组元素的个数,然后再予每个变量进行赋值:letarr2:number[]=newArray(3);arr2[0]=11;arr2[1]=22;arr2[2]=33;ArkTS数组与动态数组(2/2)

动态数组可以存放任意一种类型的多个变量,并在使用中,根据需求动态改变数组中元素的个数。//1.声明存放number变量的动态数组,初始为空数组letarr:Array<number>=[];//2.往动态数组增加要存储的数据arr.push(1);//动态数组内部会增加一个元素存放值1arr.push(2);//动态数组内部会增加一个元素存放值2arr.push(3);//动态数组内部会增加一个元素存放值3//3.循环输出数组中每个元素值,arr.length获取数组中的元素for(leti:number=0;i<arr.length;i++)

console.debug("arr["+i+"]="+arr[i]);ArkTS变量的声明与类型ArkTS数组与动态数组ArkTS函数与箭头函数ArkTS类与接口ArkTS模块的应用ArkTS函数与箭头函数(1/2)ArkTS中的函数声明格式:function函数名(参数变量名:参数变量类型,...):返回值类型function函数名(参数变量名:参数变量类型,...):void//方式1function函数名(参数变量名:参数变量类型,...)//方式2

如果函数没有返回值,则函数声明格式如下:如实现一个将两个number变量值加起来并返回的函数功能://函数封装functionmyAdd(a:number,b:number):number{returna+b;}//应用测试console.debug(""+myAdd(3,4));ArkTS函数与箭头函数(2/2)

在ArkTS中,为了便于实现函数的回调功能,可以使用Lambda函数(匿名函数)实现一个一次性的、极为简洁的函数,它可以省略函数名及返回值类型,函数声明语句中因带有=>符号,Lambda函数也称为箭头函数。//由一个func变量存放箭头函数letfunc=(a:number,b:number)=>{returna+b;}//通过func变量调用箭头函数console.debug(""+func(3,4));console.debug(""+func(7,8));ArkTS变量的声明与类型ArkTS数组与动态数组ArkTS函数与箭头函数ArkTS类与接口ArkTS模块的应用ArkTS类与接口(1/6)

类,本质上是一种数据类型,而该类型的一个具体实例则被称为对象。例如,在学生类中,一个叫张三的学生便是一个对象实例。ArkTS的类中可直接定义描述行为功能的函数成员,并可对在类中的属性成员与函数成员赋予不同的访问权限。类中所有成员可根据三种不同的修饰词被划分为不同的访问权限,这些修饰词分别是:public:表示公有权限,只要通过类的对象名就可以访问此成员。private:表示私有权限,此成员只能由类内部的函数成员访问。protected:表示受保护权限,此成员可以在类内部和派生类中被访问。若类成员未使用上述三种修饰词声明权限,则默认使用public公有权限。ArkTS类与接口(2/6)

创建类对象时,会自动触发调用类的constructor构造函数实现属性成员的初始化,如定义一个描述学生信息的Student类:classStudent{

privateid:number=0;

privatename:string='whom';

constructor(id:number,name:string){

//构造函数

//this表示当前对象,this.id表示当前对象的id成员

this.id=id;//当前对象的id成员值设为参数id的值

=name;

}

publicshowMsg(){

console.debug("id:"+this.id+"name:"+);

}}ArkTS类与接口(3/6)//创建Student对象,触发调用构造函数并传递参数letstu1:Student=newStudent(1,'LiLei');letstu2:Student=newStudent(2,'WuBinBin');//通过对象名访问公有函数成员stu1.showMsg();stu2.showMsg();ArkTS类与接口(4/6)

在ArkTS中的interface接口通常应用在程序中,用于编写实现兼容后续代码的程序核心架构功能。如在游戏程序中,先描述角色攻击功能函数,及游戏副本://声明角色的攻击函数interfaceRole{attack():void;//只声明,不实现函数体}//游戏副本,角色攻击两次functionplay(r:Role){r.attack();r.attack();}ArkTS类与接口(5/6)

通常在游戏中会有不同类型的角色,每种角色的攻击方法与手段不尽相同,所以需要在描述具体角色类中具体实现接口函数,如实现战士与魔法师等角色的接口函数:classWarriorimplementsRole{//在战士类中实现攻击函数attack():void{console.debug("战士贴身战斗!");}}classMagicianimplementsRole{//在魔法师类中实现的攻击函数attack():void{console.debug("魔法师远程攻击!");}}ArkTS类与接口(6/6)

不管具体角色类的功能如何,只要实现了Role接口函数,则预先编写好的游戏副本会完全兼容各种游戏角色,如让战士与魔法师进入游戏副本:play(newWarrior());//创建战士对象,此战士进入副本play(newMagician());//创建魔法师对象,此魔法师进入副本ArkTS变量的声明与类型ArkTS数组与动态数组ArkTS函数与箭头函数ArkTS类与接口ArkTS模块的应用ArkTS模块的应用(1/3)

按模块化设计分成多个源文件。在DevEco工程选中“pages”文件夹后点击鼠标右键选择“ArkTSFile”,创建Role.ets源文件://声明角色的攻击函数exportinterfaceRole{

attack():void;//只声明,不实现函数体}

//游戏副本,攻击两次exportfunctionplay(r:Role){

r.attack();

r.attack();}import{Role}from'./Role';//导入使用Role.ets中的Role接口exportclassWarriorimplementsRole{//定义战士的攻击函数attack():void{console.debug("战士贴身战斗!");}}exportclassMagicianimplementsRole{//定义魔法师的攻击函数attack():void{console.debug("魔法师远程攻击!");}}ArkTS模块的应用(2/3)再创建PlayerRole.ets源文件://导入使用PlayerRole.ets中的Warrior,Magician类import{Magician,Warrior}from'./PlayerRole';//导入使用Role.ets中的play副本函数import{play}from'./Role';p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论