Kotlin入门学习笔记
前言
本文适合人群 有一定的java基础
变量与方法
变量声明及赋值
var 变量名: 变量类型val 变量名: 变量类型这里,var表示可以改变的变量,val则是不可改变的变量(第一个赋值之后,之后都无法改变此变量的数值)
PS:在kotlin中,类型首字母都是要大写的,还有,冒号之后有空格变量声明及赋值
var name =""
var age= 1
val name= ""
...
赋值的话,直接赋值就好,系统会自动的给变量定义类型
变量声明特殊例子
name: String?
声明一个String类型的变量name,name可以为null,这里是空指针防护,在后面会讲到
方法声明格式
fun 方法名(){
}
PS:默认为public,返回值为空
fun helloworld() {
print("hello world")
}
无需使用分号,print省略了Java中的System.Out
和java一样,println换行,print不换行
fun helloworld(): String{
print("hello world")
}
返回一个String
protected fun helloworld(): String{
print("hello")
}
声明方法为protected,除此之外,还有private,internal
类
类的声明
class Student{
var name = ""
var age = 0
}
这里是写了一个Student类,我们上面虽然只有两行代码,但实际上将其转为java代码时,其实是包含了set和get方法
class Student{
var name = ""
set(value){
field = ...//复写set方法
}
get(value){
...
}
var age= 0
}
companion 伴生方法 相当于java中的静态方法,得在
init 主构造方法
实现接口与继承
直接构造方法
class Student(var name: String,var age: Int){}
可以直接通过参数创建一个Student对象
创建对象
`var s = Student("Zhangsan",15)
继承父类及实现接口
class Student: school,Person(){
...
}
循环
for(i in 0..100) 0到100 都取值
for(i in 0 until 100)
for(i in list)
遍历list
swich分支
val result = ""
when(result){
"OK","SUCCESS" -> print("成功")
"Falied" -> {
一系列操作...
}
else ->{
一系列操作...
}
}
result如果是OK或者是SUCCESS,执行输出成功,如果是Falied,执行后面的操作,都不符合,则执行else后面定义的操作
如果判断是否是某个类的实例,使用is关键字
val student = Student("Zhangsan",15)
when(result){
is Student -> print("")
else ->{
一系列操作...
}
}
空指针防护
?. ?
fun get(name: String?): Int{
return name?.length ?: 0 //如果name为null,则返回0,
}?. 表示前面的变量可能为null
fun toUpperCase(content: String?){
println(content?.toUpperCase) //如果content为null,则不执行
}
视频下载地址:
郭霖—快速上手kotlin链接:https://pan.baidu.com/s/1eo6B8EFdjWpwc-j8yI9iFw
提取码:fvmq
本篇其实也是笔记,可能有不准确的地方,多多包涵
Kotlin入门学习笔记的更多相关文章
- Hadoop入门学习笔记---part4
紧接着<Hadoop入门学习笔记---part3>中的继续了解如何用java在程序中操作HDFS. 众所周知,对文件的操作无非是创建,查看,下载,删除.下面我们就开始应用java程序进行操 ...
- Hadoop入门学习笔记---part3
2015年元旦,好好学习,天天向上.良好的开端是成功的一半,任何学习都不能中断,只有坚持才会出结果.继续学习Hadoop.冰冻三尺,非一日之寒! 经过Hadoop的伪分布集群环境的搭建,基本对Hado ...
- PyQt4入门学习笔记(三)
# PyQt4入门学习笔记(三) PyQt4内的布局 布局方式是我们控制我们的GUI页面内各个控件的排放位置的.我们可以通过两种基本方式来控制: 1.绝对位置 2.layout类 绝对位置 这种方式要 ...
- PyQt4入门学习笔记(一)
PyQt4入门学习笔记(一) 一直没有找到什么好的pyqt4的教程,偶然在google上搜到一篇不错的入门文档,翻译过来,留以后再复习. 原始链接如下: http://zetcode.com/gui/ ...
- Hadoop入门学习笔记---part2
在<Hadoop入门学习笔记---part1>中感觉自己虽然总结的比较详细,但是始终感觉有点凌乱.不够系统化,不够简洁.经过自己的推敲和总结,现在在此处概括性的总结一下,认为在准备搭建ha ...
- Hadoop入门学习笔记---part1
随着毕业设计的进行,大学四年正式进入尾声.任你玩四年的大学的最后一次作业最后在激烈的选题中尘埃落定.无论选择了怎样的选题,无论最后的结果是怎样的,对于大学里面的这最后一份作业,也希望自己能够尽心尽力, ...
- Scala入门学习笔记三--数组使用
前言 本篇主要讲Scala的Array.BufferArray.List,更多教程请参考:Scala教程 本篇知识点概括 若长度固定则使用Array,若长度可能有 变化则使用ArrayBuffer 提 ...
- OpenCV入门学习笔记
OpenCV入门学习笔记 参照OpenCV中文论坛相关文档(http://www.opencv.org.cn/) 一.简介 OpenCV(Open Source Computer Vision),开源 ...
- stylus入门学习笔记
title: stylus入门学习笔记 date: 2018-09-06 17:35:28 tags: [stylus] description: 学习到 vue, 有人推荐使用 stylus 这个 ...
随机推荐
- vue 组件传值
父组件传值给子组件 <list v-show="listLen" :listdata="list" :tipMsg="tipMsg" ...
- JavaScript 异步编程的前世今生(上)
前言 提到 JavaScript 异步编程,很多小伙伴都很迷茫,本人花费大约一周的业余时间来对 JS 异步做一个完整的总结,和各位同学共勉共进步! 目录 part1 基础部分 什么是异步 part2 ...
- 【RL-TCPnet网络教程】第27章 DNS域名系统基础知识
第27章 DNS域名系统基础知识 本章节为大家讲解DNS(Domain Name System,域名系统),通过前面章节对TCP和UDP的学习,需要大家对DNS也有个基础的认识. (本章的知 ...
- Java中CAS原理详解
在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁 锁机制存在以下问题: (1)在多线程竞争下,加锁.释放锁会导致比较多的上下文切换和调度延时,引起性能问题. (2 ...
- Java软件工程师面试题:Java运行时异常与一般异常有什么不一样?
异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误.java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕 ...
- FFmpeg 结构体学习(三): AVPacket 分析
在上文FFmpeg 结构体学习(二): AVStream 分析我们学习了AVStream结构体的相关内容.本文,我们将讲述一下AVPacket. AVPacket是存储压缩编码数据相关信息的结构体.下 ...
- Win10U盘启动盘制作及Win10系统安装
准备工具: 1:一个8GU盘 2:下载MediaCreationTool1803.exe程序 及参考文档. 启动盘制作步骤: 1:运行 2:按照截图步骤依次...... 3:制作完成后插拔一下U盘在看 ...
- [Swift]LeetCode710. 黑名单中的随机数 | Random Pick with Blacklist
Given a blacklist B containing unique integers from [0, N), write a function to return a uniform ran ...
- [Swift]LeetCode923.三数之和的多种可能 | 3Sum With Multiplicity
Given an integer array A, and an integer target, return the number of tuples i, j, k such that i &l ...
- 使用jQuery获取元素的宽度或高度的几种情况
今天说说使用jQuery获取元素大小的遇到几种情况 使用jQuery获取元素的宽度或高度的有几种情况: 1.使用width(),它只能获取当前元素的内容的宽度: 2.使用innerWidth(),它只 ...