《第一行代码》笔记 P15-P45

重新学习一遍这本书,之前看过一遍忘记做笔记导致看了跟没看一样,十分可惜。

这30页的内容主要讲怎么创建一个Android项目,掌握日志工具的使用,Kotlin语言的简介,如何在Android Studio运行kotlin代码、变量哥挂不是更有、程序的逻辑控制。

一、创建一个Android程序

点击file->new->new project  选择这个Empty Activity直接创建就行

 我这里安装的Android Studio 是2022.1.1

但我的Android Gradle Plugin VersionGrade Version用的是7.4.2和7.5

 所以创建的项目会报错

原因:

下面是转载内容:

Android Studio 编译系统以 Gradle 为基础,并且 Android Gradle 插件添加了几项专用于编译 Android 应用的功能。虽然 Android 插件通常会与 Android Studio 的更新步调保持一致,但插件(以及 Gradle 系统的其余部分)可独立于 Android Studio 运行并单独更新。


我更换了sdk的版本,然后重新sync一下就能使用。

 二、怎么看一个Android项目

首先看src下main文件夹下的AndroidManifest.xml文件(这个是整个Android项目的配置文件,在程序中定义的四大组件都需要在这个文件注册,另外还可以在这个文件中给应用添加权限声明)

第15行标注了Android项目运行的主Activity,按住ctrl键,鼠标左键点击.MainActivity会跳转到

MainActivity

MainActivity,点击按钮定位到当前选择打开的文件,在这里可以发现这个主Activity类继承了
AppCompatActivity(AppCompatActivity是Activity的子类),它是AndroidX提供的一种向下兼容的Activity,可以使Activity在不同系统版本中的功能保持一致性。Android程序的设计讲究逻辑视图分离。,因此不推荐在这个类直接编写页面,而是在布局文件中编辑页面,然后再这个类中引入进来,程序第9行使用了setContentView方法,所以我们按住Ctrl和鼠标左键跳转到这个布局文件

 在这个布局文件中发现了定义了Hello World的TextView,第一个程序中的Hello World就是在这定义的。 

 紧接着讲了res下的文件资源意思

 drawable开头的文件夹     放图片

mipmap开头的文件夹        放应用图标

values开头的文件夹          放字符串、样式、颜色

layout开头的文件夹          放布局文件

然后在values文件夹下的strings.xml文件定义了一个新的应用程序名字符串,然后在AndroidManifest.xml文件引用,强调了

- 在代码中通过R.string.app_name可以获得该字符串的引用

- 在xml中通过@string/app_name可以获得该字符串的引用

 三、Android的日志工具Logcat

Android Studio升级后这个开发工具没有了,所以这块略过

四、Kotlin语言简介

Kotlin是有JetBrains公司开发设计的,早在2011年公布了第一个版本,并在2012年开源,2013年发布了1.0正式版本。

然后学习变量、函数、和程序的逻辑控制(if条件语句,when条件语句)

在android studio建立kotlin,需要在MainActivity同级的包下建立

废话不多说,直接上代码

package com.czy.helloworld

fun main() {
    println("Hello World")

    var a = 10
    a *= 10
    println("a=" + a)

    //使用两个数相加函数
    val result = addTowNum(1, 11)
    println("1+11=$result")

    //两个数相减
    val result2 = twoNumSub(10, 1)
    println("10-1="+result2)

    //两个数比大小
    val largerNumber1 = largerNumber1(10, 2)
    println("两个数比大小 第一种写法 java风格 10 与 2 最大的是 $largerNumber1")
    val largerNumber2 = largerNumber2(55, 1)
    println("两个数比大小 第二种写法 55 与 1 最大的是 $largerNumber2")
    val largerNumber3 = largerNumber3(7, 1)
    println("仔细发现value其实也是一个多余的变量,可以直接返回,这样能使代码更加简洁 7 与 1 最大的是 $largerNumber3")
    val largerNumber4 = largerNumber4(9, 99)
    println("两个数比大小 第三种写法 9 与 99 最大的是 $largerNumber4")
    val largerNumber5 = largerNumber5(998, 9999)
    println("第三种方法还可以直接压缩为一行代码 998 与 9999 最大的是 $largerNumber5")

}


//两个数相加
fun addTowNum(param1: Int, param2: Int): Int {
    return (param1 + param2)
}

//两个数相减 first - second
fun twoNumSub(param1: Int,param2: Int) = (param1 - param2)


//两个数比大小 第一种写法 java风格
fun largerNumber1(num1:Int,num2:Int):Int{
    var value = 0
    if (num1>num2){
        value = num1
    }else{
        value = num2
    }
    return value
}

/*
    两个数比大小 第二种写法
    Kotlin中的if相比于java有一个额外的功能,它是可以有返回值的,
    返回值就是if语句每一个条件中最后一行代码的返回值
*/
fun largerNumber2(num1 :Int,num2:Int):Int{
    val value = if (num1>num2){
        num1
    }else{
        num2
    }
    return value
}

/*
    两个数比大小 第二种写法
    仔细发现value其实也是一个多余的变量,可以直接返回,这样能使代码更加简洁
*/
fun largerNumber3(num1 :Int,num2:Int):Int{
    return if (num1>num2){
        num1
    }else{
        num2
    }
}


/*
    两个数比大小 第三种写法
    当一个函数只有一行代码时,可以省略函数体部分,直接将这一行代码使用等号串联在
    函数定义的尾部
*/
fun largerNumber4(num1 :Int,num2:Int) = if (num1>num2){
        num1
    }else{
        num2
    }

/*
    两个数比大小 第三种写法
    第三种方法还可以直接压缩为一行代码
*/
fun largerNumber5(num1 :Int,num2:Int) = if (num1>num2) num1 else num2












package com.czy.helloworld

fun main() {
    val score = getScore1("Tom")
    println(score)
    val score2 = getScore2("Jim")
    println(score2)
}


/**
 * 根据名字比较分数
 * if版本
 */
fun getScore1(name:String) = if (name =="Tom") 86 else if(name =="Jimi") 56 else if (name == "Lilei") 75 else 0


/**
 * 根据名字比较分数
 * when版本  匹配值 -> {执行逻辑}
 */
fun getScore2(name:String) = when(name){
    "Tom" -> 86
    "Jim" ->100
    "Lilei" -> 45
    else -> 0
}

kotlin代码的感想:

   1、可以完全兼容java风格的代码,如果不想要kotlin语言,直接有java写也是能运行的。

   2、kotlin的语言风格十分简便和灵活。它有自动推导对象数据类型

  3、val声明常量, 引用不可变;var声明变量,可以被重新赋值,引用可以变。

java和kotlin数据类型对照关系

java基本数据类型 kotlin对象数据类型 数据类型说明
int Int 整形
long Long 长整型
short Short 短整型
float Float 单精度浮点型
double Double 双精度浮点型
boolean Boolean 布尔型
char Char 字符串型
byte Byte 字节型

 

引用博客:

(4条消息) Java类型与Kotlin类型对应关系_kotlin和jdk关系_WongKyunban的博客-CSDN博客

猜你喜欢

转载自blog.csdn.net/weixin_46511995/article/details/129846017
今日推荐