美文网首页
Java & Groovy & Scala & Kotlin -

Java & Groovy & Scala & Kotlin -

作者: bookislife | 来源:发表于2017-04-03 17:05 被阅读0次

    Overview

    本章主要介绍一下四门语言的一些基本特性

    Java 篇

    以下是一个最基础的 Java 类

    Hello.java

    package com.bookislife.jgsk._04_hello;
    
    public class Hello {
    
        public static void main(String[] args) {
            String hello = "Hello, Java!";
            System.out.println(hello);
        }
    }
    

    从以上代码可以看到 Java 程序有这么几个特点

    • 文件后缀为 .java
    • 程序入口为 main() 方法
    • 变量类型定义在变量名左边
    • 所有语句以 ; 结尾

    Groovy 篇

    以下是一个最基础的 Groovy 类

    Hello.groovy

    package com.bookislife.jgsk.groovy._04_hello
    
    class Hello {
    
        static void main(String[] args) {
            def hello = "Hello, Groovy!"
            println(hello)
        }
    }
    

    从以上代码可以看到 Groovy 程序有这么几个特点

    • 文件后缀为 .groovy
    • 程序入口为 main() 方法,但是可以省略 public 等关键字
    • 变量无需指定类型
    • 控制台打印语句更加简单
    • 所有语句结尾可以没有 ;

    Scala 篇

    以下是一个最基础的 Scala 类

    Hello.scala

    package com.bookislife.jgsk.scala._04_hello
    
    object Hello {
    
      def main(args: Array[String]) {
        val hello = "Hello, Scala!"
        println(hello)
      }
    }
    

    从以上代码可以看到 Scala 程序有这么几个特点

    • 文件后缀为 .scala
    • 程序入口为 main() 方法,且声明为 object Hello 而不是 class Hello
    • 变量无需指定类型
    • 控制台打印语句更加简单
    • 所有语句结尾可以没有 ;

    Kotlin 篇

    以下是一个最基础的 Kotlin 类

    Hello.kt

    package com.bookislife.jgsk.kotlin._04_hello
    
    fun main(args: Array<String>) {
        val hello = "Hello, Kotlin!"
        println(hello)
    }
    

    从以上代码可以看到 Kotlin 程序有这么几个特点

    • 文件后缀为 .kt
    • 语法与 java 差异很大
    • 程序入口为 main() 方法,但是 main() 方法独立存在,而不是定义在类中
    • 变量无需指定类型
    • 控制台打印语句更加简单
    • 所有语句结尾可以没有 ;

    Summary

    • 所有语言都有一个 main() 方法作为程序的入口,Kotlin 定义在类外,Scala 定义在 object
    • 除 Java 外,其它语言都可以省略结尾的分号
    • 除 Java 外,其它语言都可以使用 println() 作为打印语句

    文章源码见 https://github.com/SidneyXu/JGSK 仓库的 _04_hello 小节

    相关文章

      网友评论

          本文标题:Java & Groovy & Scala & Kotlin -

          本文链接:https://www.haomeiwen.com/subject/yjloottx.html