您的位置:首页 > 教育 > 锐评 > 网页设计代码大全html制作表单_新生活cms订货系统下载_seo教学网seo_平台软件定制开发

网页设计代码大全html制作表单_新生活cms订货系统下载_seo教学网seo_平台软件定制开发

2025/2/28 17:00:57 来源:https://blog.csdn.net/weixin_46750485/article/details/143894994  浏览:    关键词:网页设计代码大全html制作表单_新生活cms订货系统下载_seo教学网seo_平台软件定制开发
网页设计代码大全html制作表单_新生活cms订货系统下载_seo教学网seo_平台软件定制开发

文章目录

  • 1.变量和函数
    • 1.1 变量
    • 1.2 函数
  • 2.程序的逻辑控制
    • 2.1 if条件语句
    • 2.1 when条件语句
    • 2.2for循环
  • 3 类与对象
    • 3.1构造函数
    • 3.2 java和Kotlin函数可见性修饰符对照表
  • 4.数据类与单例类
    • 4.1数据类
    • 4.2单例类
  • 5 Lambda编程
    • 5.1 listof()函数
    • 5.2 SetOf()
    • 5.3Map集合
    • 5.4 集合的函数式API
    • 5.4 可空类型系统
  • 6.Kotlin转换为Java

1.变量和函数

1.1 变量

val用来声明一个不可变的变量,对应java中的final
var用来声明一个可变的变量
每一行代码的结尾不用加分号
自动推导变量的类型val a = 10,但是在延迟赋值的时候,需要显示声明变量类型:val a :Int = 10

在Kotlin中,延迟赋值通常是通过使用 lazy 委托属性来实现的。lazy 委托属性允许你延迟一个值的初始化,直到第一次访问该属性时才进行计算。这对于那些计算开销较大或依赖于某些初始化步骤完成后才可获得的属性特别有用。
在这里插入图片描述

Kotlin没有基本数据类型,全部使用对象数据类型

1.2 函数

fun methodName(param1:Int,param2:Int):Int{return 0;
}

2.程序的逻辑控制

2.1 if条件语句

if相比于java有一个额外的功能,它可以有返回值,返回值是if语句每一个条件中最后一行代码的返回值
传统的写法:

fun largerNumber(num1:Int,num2:Int):Int{var value = 0if(num1 > num2){value = num1}else{	value = num2}
return value
}

if语句中返回value

fun largeNumber(num1:Int,num2:Int):Int{val value = if(num1 > num2){num1}else{num2}return value
}

继续精简

fun largeNumber(num1:Int,num2:Int):Int{return if(num1 > num2){num1}else{num2}
}

语法糖:当一个函数只有一行代码时,可以省略函数体部分,直接将这一行代码使用等号串联在函数定义的尾部

fun largeNumber(num1:Int,num2:Int) = if(num1 > num2) num1 else num2

太优雅了~

2.1 when条件语句

Kotlin中的when语句有点类似于java中的Switch语句。when相对于java中的Switch增强:

  • when允许传入一个任意类型的参数,when的结构体中定义了一系列的条件
    匹配值 -> {执行逻辑} 只有一行代码时,{}可以省略

  • 支持类型匹配
    is相当于java中的instanceof关键字

fun checkNumber(num:Number){when(num){is Int -> println("..")is Double -> println("...")else -> println("....")}
}

Kotlin中判断字符串或者对象相等可以直接使用 == 关键字

2.2for循环

  • 舍弃了for-i循环,使用for-in循环
  • 区间概念 val range= 0..10 等价于[0,10], …是创建区间的关键字
fun main(){for(i in 0..10){println(i)}
}
  • 用单端闭区间多,尤其是左闭右开区间,int[10] 实际上区间范围是0到9。
  • Kotlin使用until关键字来创建一个左闭右开的区间 val range = 0 until 10
  • step关键字,循环中每次循环后i自增的大小
  • 降序区间使用downTo关键字 for(i in downTo 1) 创建了[10,1]的降序区间

3 类与对象

  • 实例化对象不需要new关键字
  • Kotlin中任何一个非抽象类默认都是不可以被继承的,相当于java中给类声明了final关键字
  • open关键字使得类可以被继承
open class Person{...
}
  • 继承关键字是一个:,而不思extends;父类后面还要加上一对括号。下方代码是student类继承了Person类
class Student:Person(){var sno = ""var grade = 0
}

3.1构造函数

  • 主构造函数,默认不带参数,也可以显式的指明参数。特点是没有函数体,直接定义在类名后面即可,如下方代码所示,实例化student对象的时候,必须传入构造函数当中要求的所有参数
class student(val sno:String,val grade:Int):Person(){} 

这个时候想要在主构造函数中编写一些逻辑,的init结构体中进行编写。在这Person后的括号可以理解为调用父类的构造函数

class student(val sno:String,val grade:Int):Person(){init{println("sno is" + sno)}
} 

注意:当父子类都显示了声明了主构造函数,子类的构造函数中要传入父类的字段,但是不能加val或者var,子Kotlin中,在主构造函数声明val或者var的参数将自动变成该类的字段,这就会导致和父类同名的字段造成冲突。

  • 次构造函数
    通过constructor关键字来定义
class student(val sno:String,val grade:Int):Person(){constructor(name:String,age:Int):this("",0,name,age){}constructor():this("",0){}
} 

3.2 java和Kotlin函数可见性修饰符对照表

private和public的范围一致,其他三个有区别
|修饰符|Java  |Kotlin

4.数据类与单例类

4.1数据类

在Kotlin中实现Model相对于Java简单很多,在包->new->kotlin file/class ,在弹出的对话框中选择“Data” (基于Android14)

在这里插入图片描述

在这里插入图片描述
下面这行代码就能表示Model类

data class hello(var brand:String)

4.2单例类

在这里插入图片描述

5 Lambda编程

5.1 listof()函数

用于向List集合中添加数据,下方代码创建了List类型的集合

var list = listOf(“Apple”,"Banana","Orange";

注意:listOf()函数创建的是一个不可变的集合,该集合只能用于读取,我们无法对集合进行添加,修改和删除操作。

  • 可变集合的创建
val list = mutableListOf("Apple","Banana","Orange","Pear","Grape")

5.2 SetOf()

5.3Map集合

   fun hello(){val map = HashMap<String,Int>()map["apple"] = 1;map["banana"] = 2;val m = mapOf("apple" to  1,"banana" to 2);}

5.4 集合的函数式API

  • Lambda的定义:一小段可以作为参数传递的代码
  • 语法结构
  • {参数名1:参数类型,参数名2:参数类型->函数体}

5.4 可空类型系统

  • Int?表示可空的整形,String?表示可空的字符串。Int表示不可为空的整形
  • 判空辅助工具 ?:,这个操作符的左右两边都接收一个表达式,如果左边表达式的结果不为空就返回左边的表达式的结果,否则就返回右边表达式的结果。

6.Kotlin转换为Java

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com