1.初识kotlin

/ 0评 / 0

作为一门语言的入门第一章,我们有必要弘扬学习一门语言的一贯作风,写一个hello world.打开Idea->create project->左边选择kotlin->console application->next->给项目起个好名字->ok.

image-20220312000655827

这样我们就创建了一个kotlin的项目,里面只有一个Main类,跑一下Main类的main函数

image

这样我们就完成了kotlin 的首次之旅,kotlinidea 都是jetbrain 的产品.jetbrain 为了推广kotlin ,将其内置在了idea 当中,所以我们可以直接使用idea 来创建项目而不用安装sdk.

我们来看下这个main文件到底是什么鬼,怎么后缀名还是kt 结尾的?

fun main(args: Array<String>) {
    println("Hello World!")
}

这里推荐使用ideakotlin插件,tools->kotlin->show kotlin ByteCode->Decompile,这样我们就可以把main 类的字节码文件反编译成java文件,可以kotlin葫芦里到底卖的什么药.后面kotlin的很多语法糖我们可以用它来研究,所以有必要学会使用这个插件.

public final class MainKt {
   public static final void main(@NotNull String[] args) {
      Intrinsics.checkNotNullParameter(args, "args");
      String var1 = "Hello World!";
      System.out.println(var1);
   }
}

看完是不是有点明白了,kt 文件最终会被解释成public final class ,那再在这个文件里面定义一个A 类呢?

fun main(args: Array<String>) {
    println("Hello World!")
}
class A{

}

反编译看看

// A.java
import kotlin.Metadata;
public final class A {
}
// MainKt.java
public final class MainKt {
   public static final void main(@NotNull String[] args) {
      Intrinsics.checkNotNullParameter(args, "args");
      String var1 = "Hello World!";
      System.out.println(var1);
   }
}

A 类也变成了final,在java里面final修饰的类不能被继承,我们建一个B 类继承A 类试试

image

报错了,这正符合我们的预期,因为final 不可被继承,我们根据idea 的提示,make A open 试试,kt 文件变成了这样

// A.java
import kotlin.Metadata;

public class A {
}
// MainKt.java
import kotlin.Metadata;
import kotlin.jvm.internal.Intrinsics;
import org.jetbrains.annotations.NotNull;

public final class MainKt {
   public static final void main(@NotNull String[] args) {
      Intrinsics.checkNotNullParameter(args, "args");
      String var1 = "Hello World!";
      System.out.println(var1);
   }
}
// B.java
import kotlin.Metadata;

public final class B extends A {
}

咦,A 类的final咋没了,哎,对鸟,这就是open 的作用,在kotlin 中不仅仅是定义在kt 文件中的类是final 的,所有的类都是final 的,所以如果我们要实现继承就得把final 去掉,open 关键字就是这个效果.

kt文件里面不仅可以定义类,定义方法,定义属性,定义接口,定义很多多很多东西,在实际的运用中,我们可以把很多相似的东西定义成一个kt文件,比如某一个模块的requestresponse dto的类全放到一个kt文件里面,那项目就可以看起来清爽很多.

so much for this.让我们结束kotlin的首次之旅把.

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注