当前位置:   article > 正文

鸿蒙HarmonyOS4.0开发应用学习笔记——第一篇_harmonyos4应用开发

harmonyos4应用开发

1、熟悉鸿蒙官网 安装DevEco Studio

设计:设计的资源,需要来找

开发:开发应用

分发:发布

文档:开发查看的资料(指南,API文档

2、了解ArkTS语言

利用网页技术开发:

        CSS语言控制布局与样式

        HTML控制页面元素

        JS控制页面逻辑和数据状态

ArkTS = CSS+HTML+JS

ArkTS(声明式UI、状态管理……)基于TypeScript(静态类型定义),基于JS

声明式UI:需要什么就声明什么

3、TypeScript语法

(1)变量的声明

let msg: string = "hello world"

(let 代表变量(const 代表常量)、msg 代表名称、 string 数据变量的类型)

支持的变量类型:

  1. //string:字符串,可以用单引号或双引号
  2. let msg: string = 'hello world'
  3. //number:数值,整数、浮点数都可以
  4. let age: number = 21
  5. // boolean:布尔
  6. let finished: boolean = true
  7. // any:不确定类型,可以是任意类型
  8. let a: any = 'jack'
  9. a = 21
  10. //union:联合类型,可以是多个指定类型中的一种
  11. let u: string| number | boolean = 'rose'
  12. u = 18
  13. //object:对象
  14. let p = {name: 'Jack ', age: 21]
  15. console.log(p.name)
  16. console.log(p[ 'name '])
  17. //Array:数组,元素可以是任意其它类型
  18. let names: Array<string>= [ ' Jack' , 'Rose ']
  19. let ages: number[] = [2r,18]
  20. console.log(names[0])

(2)条件判断 

  1. //定义数字
  2. let num: number = 21
  3. //判断是否是偶数
  4. if(num%2 === 0)
  5. {
  6. console.log(num+'是偶数')
  7. }
  8. else
  9. {
  10. console.log(num+'是奇数')
  11. }
  12. //判断是否是正数
  13. if(num >0 )
  14. {
  15. console.log(num+'是正数')
  16. }
  17. else if (num < 0)
  18. {
  19. console.log(num+'是负数')
  20. }
  21. else
  22. {
  23. console.log(num+'为0')
  24. }

//注意:在TupeScript中·空字符串·数字0、null、undefined都被认为是false,其它值则为true

  1. let grade: string = 'A'
  2. switch(grade)
  3. {
  4. case 'A':{
  5. console.log('优秀')
  6. break
  7. }
  8. case 'B':{
  9. console.log('合格')
  10. break
  11. }
  12. case 'C':{
  13. console.log('不合格')
  14. break
  15. }
  16. default:{
  17. console.log('非法输入')
  18. break
  19. }
  20. }

(3)循环语句

TypeScript支持for和while循环,并且为一些内置类型如Array等提供了快捷迭代语法。

  1. //普通for
  2. for(let i = l; i <= 10; i++){
  3. console.log('点赞'+i+'次')
  4. }
  5. // while
  6. let i = 1;
  7. while(i <= 10){
  8. console.log('点赞'+i+'次')
  9. i++;
  10. }
  1. //定义数组
  2. let names: string[] = [ ' Jack ', 'Rose ']
  3. // for in 迭代器,遍历得到数组角标
  4. for (const i in names)
  5. {
  6. console.log (i + ':' + names[i])
  7. }
  8. // for of 迭代器,直接得到元素
  9. for (const name of names)
  10. {
  11. console.log(name)
  12. }

(4)函数

TypeScript通常利用function关键字声明函数,并且支持可选参数、默认参数、箭头函数等特殊语法。

  1. //无返回值函数,返回值void可以省略
  2. function sayHello(name: string): void{
  3. console.log('你好,' + name + '!')
  4. }
  5. sayHello( 'Jack ')
  6. //有返回值国数
  7. function sum(x : number, y: number): number {
  8. return x +y
  9. }
  10. let result = sum(2118)
  11. console.log( '21 +18 =' +result)
  12. //箭头函数
  13. let sayHi = (name : string) =>{
  14. console.log('你好,' + name + '!')
  15. }
  16. sayHi( 'Rose ')
  1. //可选参数,在参数名后加?,表示该参数是可选的
  2. function sayHello(name? : string){
  3. //判断name是否有值,如果无值则给一个默认值
  4. name = name ? name :'陌生人'
  5. console.log('你好,' + name + '!')
  6. }
  7. sayHello('Jack')
  8. sayHello()
  1. // 参数默认值,在传参后面赋值,表示参数默认值
  2. // 如果调用者没有传参,则使用默认值
  3. function sayHello(name: string ='陌生人')
  4. {
  5. console.log('你好,' + name + '!')
  6. }
  7. sayHello('Jack')
  8. sayHello()

(5)面向对象,类和接口

TypeScript具备面向对象编程的基本语法,例如interface、class、enum等。也具备封装、
继承、多态等面向对象基本特征。

  1. //定义枚举 就类似于C语言的结构体
  2. enum Msg{
  3. HI='Hi',
  4. HELLO = 'Hello'
  5. }
  6. //定义接口,抽象方法接收枚举参数 定义方法的声明
  7. interface A {
  8. say (msg: Msg) :void // 定义规则,方法
  9. }
  10. //实现接口 B实现了A接口 实现方法
  11. class B implements A{
  12. say (msg: Msg): void {
  13. console.log(msg + ', I am B ')
  14. }
  15. }
  16. //初始化对象
  17. let a:A=new B()
  18. //调用方法,传递枚举参数
  19. a.say(Msg.HI)
  1. //定义矩形类
  2. class Rectangle {
  3. //成员变量
  4. private width: number
  5. private length: number
  6. //构造函数
  7. constructor(width : number, length: number)
  8. this.width = width
  9. this.length = length
  10. }
  11. //成员方法
  12. public area() : number{
  13. return this.width * this.length
  14. }
  15. }
  16. //定义正方形
  17. class Square extends Rectangle{
  18. constructor(side: number) {
  19. //调用父类构造
  20. super(side,side)
  21. }
  22. }
  23. let s = new Square(10)
  24. console.log('正方形面积为:' + s.area()

 // 理解:将10这个数传进Square这个类里面,给这里面的构造方法side参数,side参数通过调用Square的父类Rectangle中的构造将其传给width,length参数。当对对象s调用方法,area方法时也就实现了面积的计算

(6)模块开发

应用复杂时,我们可以把通用功能抽取到单独的ts文件中,每个文件都是一个模块(module)。模块可以相互加载,提高代码复用性。

  1. //定义矩形类,并通过export导出
  2. export class Rectangle {
  3. //成员变量
  4. public width: number
  5. public length: number
  6. //构造函数
  7. constructor(width: number, length : number) {
  8. this. width = width
  9. this.length = length
  10. }
  11. }
  12. //定义工具方法,求短形面积,并通过export导出
  13. export function area(rec: Rectangle) : number{
  14. return rec.width * rec.length
  15. }

// 这个Rectangle类 ,上一个板块的区别:成员变量是公有的成员变量;方法的定义,以及变量的引用也有区别

  1. //通过import语法导入,from后面写文件的地址
  2. import {Rectangle, area} from '../rectangle'
  3. //创建Rectangle对象
  4. let r = new Rectangle(1020)
  5. //调用area方法
  6. console.log('面积为:' + area(r))

// 注:文章为本人为督促自己学习而做的学习笔记,如有侵权,请联系我,我将在第一时间删除

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/293943
推荐阅读
相关标签
  

闽ICP备14008679号