IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 《第一行代码》第一章第二章学习 -> 正文阅读

[移动开发]《第一行代码》第一章第二章学习

第一章

Android系统架构:

  1. Linux内核层:提供底层驱动;
  2. 系统运行库层:提供数据库支持;
  3. 应用框架层:提供API,用于构建应用程序;、
  4. 应用层:应用程序。

Android系统开发特色:

四大组件:

  • Activity:应用显示界面都在此运行;
  • Service:后台运行,即使退出程序也在运行;
  • BroadcastReceiver:接收消息并发出消息;
  • ContentProvider:读取信息,为应用程序之间数据共享提供可能;

丰富的系统控件

SQLite数据库:

轻量级,运算速度快的嵌入式关系型数据库,支持标准的SQL语法,并可通过封装好的API让储存和读取数据变得方便

强大的多媒体

第二章:

如何独立运行kotlin代码:

  1. 使用lntelliJ IDEA直接创建konlin项目,缺点是需安装IDE工具;
  2. 在线运行代码
  3. 使用Android studio创建Android项目编写kotlin的main函数;变量与函数;
  • 变量:定义变量只允许两种关键字:val和var
    • val:用于声明一个不可变的变量,赋值后不可改变,对应Java中的final变量;
    • var:声明可变变量,赋值后仍可重新赋值,对于Java的非final变量。

注:kotlin结尾不用分号

如果对变量延迟赋值,类型推导机制不可正常工作,需显示地声明变量类型

  • 函数:函数是运行代码的载体;
    • 定义函数的规则:首先fun是定义函数的关键字,而后是函数名(最好拥有一定的实际意义),接着紧跟一对括号,用以声明接受什么参数。

程序的逻辑控制:

分类:顺序,条件,循环

  • 条件语句:if/when;
    • if条件语句:与Java的区别:可以有返回值;
    • when条件语句:类似于Java中的switch语句,但功能更为强大,解决了switch语句在case后需添加break的问题;
      • 使用格式:“匹配值 -> { 执?逻辑 }”,当执行逻辑只有一行时,{}可省略;

? when语句允许类型匹配,is是类型匹配的核心

e.g checkNumber()函数是Number类型的参数,int、long、float、double都是它的子类;

若不带传入参数,需将判断表达式完整的描述,判断是否相等需使用==关键字,用以防止表达式中有相同的部分导致错误;

  • 循环语句:while/for;

    • while语句和Java无区别;

    • for语句:

      • 普及区间的概念:val range = 0…10表示[0, 10]这个区间
      • 创建区间后可以通过for-in循环来遍历这个区间
      • 创建左闭右开区间:until关键字,即val range = 0 until 10;
      • 如想创建一个降序区间可以使用downTo关键字,同样是闭区间;
      • for-in语句默认是递增1,若想要跳过某些元素可使用step语句,如:
fun main() {

for (i in 0 until 10 step 2)

{ println(i)

}

}

表示递增2;

面对对象编程:

类与对象:

  • 创建类:右击com.example.helloworldNewKotlin File/Class,在弹出的对话框中输?Person即可创建一个Person类,然后在下拉框选择Class创建类;

  • 使用方法:先将事物封装成具体的类,然后将事物所拥有的属性和能?分别定义成类中的字段和函数,接下来对类进?实例化,再根据具体的编程需求调?类中的字段和 ?法即可。

  • 继承和构造函数:

使用方法:

右击com.example.helloworldNewKotlin File/Class,在弹出的对话框中输?Student,并选择创建?个Class, 你可以通过上下按键快速切换创建类型,但此时Student和Person无继承关系,可以使用以下两件事来使其可被继承;

  • 使Person类可被继承,因为Kotlin中默认所有非抽象类都是不可被继承的,一定要由子类去继承它才可创建实例,方法:在Person前加上open关键字;
  • 继承即在Student后添加一个冒号,即:

class Student : Person() { var sno = "" var grade = 0 }

为什么Person后需添加一对括号?因为其涉及主构造函数

构造函数:

  • 主构造函数在每个类都默认自带一个不带参数的主构造函数,其特点是无函数体,直接定义在类名后即可,如:

? class Student(val sno: String, val grade: Int) : Person() { }

? 问:若无函数体,怎样编写一些逻辑?

? 答:Kotlin为我们提供了一个init结构体,逻辑都可以写在其中;

  • 次构造函数:一个类只能有一个主构造函数,但可以有多个次构造函数

    • 规定:当一个类既有主构造函数又有次构造函数时,所有次构造函数都必须调用主构造函数(包括间接调用),次构造函数是通过constructor关键字来定义的;

    • 特例:只有次构造函数,无主构造函数:无主构造函数,次构造函数只能直接调用父类的构造函数。

  • 继承规则:?类中的构造函数必须调??类中的构造函数;

接口:

一个类最多只能继承一个父类,但可以有多个接口,创建方式:右击com.example.helloworld包→NewKotlin File/Class,在弹出的对话框中输?Study,创建类型选择Interface;接口与继承相同,统一使用冒号,且接口后无括号,因为其没有构造函数可调用;

函数的可见性修饰符:4种:有publicprivateprotectedinternal,其中public是默认项,protected表示只对当前类和子类可见,internal只对同一模块的类可见;

Lambda编程:

集合的创建和遍历:

传统意义上集合是List和Set,List的主要实现类是ArrayListLinkedList,Set的主要实现类是HashSet,Map的主要实现类是HashMap;

List集合:

list0f()函数创建的是一个不可变的集合,不可变的集合指的是只能读取,不可添加、修改或删除操作。如果想要创建一个可以读取的集合,可以使用mutableList0f()函数创建一个可变的集合,同样是for-in循环使其遍历。

Set集合:

?法?乎与此?模?样,只是将创建集合的?式换成了setOf()mutableSetOf()函数 ?已。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-01-04 13:32:50  更:2022-01-04 13:33:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:57:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码