前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kotlin入入入门(二)

Kotlin入入入门(二)

作者头像
俞其荣
发布2022-07-28 08:22:57
5610
发布2022-07-28 08:22:57
举报
文章被收录于专栏:俞其荣的博客

找不同

之前在 Kotlin入入入门(一) 中已经介绍了如何配置 Kotlin 。另外,还把 Java 代码转换为了 Kotlin 代码。所以今天我们就来比较一下这两者代码之间的区别,从而实现快速入门 Kotlin 。

Now ,我们把之前相同含义的 Java 和 Kotlin 代码粘贴出来(上面是 Java 代码,下面是 Kotlin 代码):

代码语言:javascript
复制
package me.yuqirong.kotlindemo;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView textView = (TextView) findViewById(R.id.textView);
        textView.setText("Hello World");
    }
}
代码语言:javascript
复制
package me.yuqirong.kotlindemo

import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        textView.text = "Hello World"
    }
}

package

我们先慢慢地从上往下看,第一句 package 语句就有所不同。我们发现 Kotlin 中的所有代码没有以 ; 结尾。另外,在 Kotlin 中并不要求包与目录匹配。即源文件可以在文件系统中的任意位置。

比如 package me.yuqirong.kotlintest 可能位于 /me/yuqirong/kotlintest2/ 文件夹下,并不会报错;而在 Java 中,包与目录必须匹配。

但是需要注意的一点是,在 AndroidManifest.xml 中配置的 Activity 的全类名必须和其路径一致,否则会找不到!

class

在 Kotlin 中,class 默认是 public 的,所以平常都省略不写。

继承父类和实现接口都用 : 来表示。不同的是继承父类是带 () 的,即表示构造器,比如上面的 AppCompatActivity() ;而接口则不需要 ()

举个例子:

代码语言:javascript
复制
class MainActivity : AppCompatActivity(), View.OnClickListener {
    ...
}

AppCompatActivity() 就是继承,而 View.OnClickListener 就是实现。

method

从比较的代码中可以知道:

在 Kotlin 中默认方法的修饰符就是 public ,可以省略不写。

在 Kotlin 中重写的方法是要加 override 关键字的,而 Java 是以注解 @Override 来修饰的;

在 Kotlin 中方法都是用 fun 关键字来声明的;

在 Kotlin 中方法的参数是参数名在前,参数类型在后,中间以 : 隔开;若参数可能为空,则在参数类型后加 ? 来表示。即上面代码中的 (savedInstanceState: Bundle?)

举个例子:

方法名 multiplication ,参数 int aint b ,返回 ab 相乘的值:

代码语言:javascript
复制
fun multiplication(a: Int, b: Int): Int {
    return a * b
}

有人也许会有疑问,这和 Java 代码行数也差不多嘛。

当然还有更加简单的写法,函数体可以是表达式,并可从中推断出返回值类型。返回类型就可以省略不写了:

代码语言:javascript
复制
fun multiplication(a: Int, b: Int) = a * b

附加题

定义变量

只读变量 val

代码语言:javascript
复制
val i: Int = 1
// 推测为 Int 类型
val j = 2

Kotlin 中的 val 关键字就类似于 Java 中的 final

可变变量 var

代码语言:javascript
复制
var i: Int = 1
i += 1

字符串模板

字符串可以包含模板表达式,即可求值的代码片段,并将其结果连接到字符串中。一个模板表达式由一个 $ 开始并包含另一个简单的名称。

举个例子:

代码语言:javascript
复制
fun main(args: Array<String>) {
    val text = "World!"
    println("Hello, ${text}") // 也可以去掉{},即 println("Hello, $text")
}

运行结果:Hello, World!

基本类型

Kotlin 基本类型包括了数值、字符、布尔、字符串和数组。

代码语言:javascript
复制
// int 类型
val a: Int = 10000
// double 类型
val b: Double = 125.2
// float 类型
val c: Float = 123.2f
// long 类型
val d: Long = 1234L
// boolean 类型
val e: Boolean = false
// char 类型
val f: Char = 'e'
// string 类型
val g: String = "hello"
// byte 类型
val h: Byte = 1
// short 类型
val i: Short = 3
// 数组类型
val x: IntArray = intArrayOf(1, 2, 3)

流程控制

while 循环

while 循环与 Java 中的无异。

End

今天就讲到这里了,更多 Kotlin 的使用方法就期待下一篇吧!

Goodbye ! ~ ~

更多关于 Kotlin 的博客:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-12-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 找不同
    • package
      • class
        • method
        • 附加题
          • 定义变量
            • 字符串模板
              • 基本类型
                • 流程控制
                • End
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档