scala01

1. IDE的集成这里略去

2. HelloWorld入门程序

scala 复制代码
package com.zishi.scala.a01.okk01

/**
 * package包,等同java中的package
 *
 * object 声明对象(单例)
 * scala是一个完全面向对象的语言,java屮的靜态语法不是面向对象的。
 * scala语言没有静态语法。java语言的静态操作在scala中该如何使用?
 * scala采用新的关键字object来模拟静态语法,可以通过对象名称实现静态作
 * 如果使用object关键字声明一个对象,那么在编译时同时也会编译出对应class文件
 *
 * Scala01_HelloWorld :单例对象名称,同时也是类名
 *
 */
object Scala01_HelloWorld {

  /**
   * def : scala语言中声明方法的关键字
   * main :Scala语言程序入口方法
   * main(...): 小括号表示方法参数列表,可以有参数,也可以没有参数,如果有多个参数,使用逗号隔开
   * args:Array[String]:方法参数
   *
   * Array[String]:表示参数类型
   * scala语言是一个完全面向对象的语言,所以数组也是对象。也有自己的类型:Array scala语言中中括号中的String表示泛型
   *
   *
   *  def方法名称(参数名称: 参数类型): 返回值类型 = { 方法体 }
   *
   * def main :Unit scala语言中方法的声明也符合scala的规则
   * 方法名 (参数列表):方法类型
   * scala语言是基于java开发,是一个完全面向对象语言。
   *
   * Unit: 返回值类型,这里等同于Java中的Void
   * =: 赋值
   * {}: 方法体
   *
   * @param args
   */
  def main(args: Array[String]): Unit = {
    // 方法体
    println("Hello Scala")

  }
}

运行

bash 复制代码
.\classes> scala com.zishi.scala.okk01.Scala01_HelloWorld
Hello Scala

注释

scala 复制代码
/*
   这是一个简单的测试程序,测试注释!
 */
object Test01_Comment {
  /**
   * 这里是多行注释 
   * 程序的入口方法
   * 
   *
   * @param args 外部传入的参数
   */
  def main(args: Array[String]): Unit = {
    //打印输出,单行注释
    println("hello")
  }
}

变量

scala 复制代码
import com.zishi.scala.Student
object Test02_Variable {
  def main(args: Array[String]): Unit = {
    // 声明一个变量的通用语法
    var a: Int = 10

    //(1)声明变量时,类型可以省略,编译器自动推导,即类型推导
    var a1 = 10
    val b1 = 23

    //(2)类型确定后,就不能修改,说明Scala是强数据类型语言。
    var a2 = 15 // a2类型为Int
    //a2 = "hello",报错!

    //(3)变量声明时,必须要有初始值
    //var a3: Int

    //(4)在声明/定义一个变量时,可以使用var或者val来修饰,var修饰的变量可改变,val修饰的变量不可改。
    a1 = 12
    //b1 = 25

    var alice = new Student("alice", 20)
    alice = new Student("Alice", 20)
    alice = null
    val bob = new Student("bob", 23)
    bob.age = 24
    bob.printInfo()
    //bob = new Student("bob", 24)
  }
}

package com.zishi.scala

class Student(name: String, var age: Int) {
  def printInfo(): Unit = {
    println(name + " " + age + " " + Student.school)
  }
}

//引入伴生对象
object Student {
  val school: String = "peking"

  def main(args: Array[String]): Unit = {
    val alice = new Student("alice", 222)
    val bob = new Student("bob", 333)

    alice.printInfo()
    bob.printInfo()
  }
}
相关推荐
Kisorge21 分钟前
【C语言】指针数组、数组指针、函数指针、指针函数、函数指针数组、回调函数
c语言·开发语言
轻口味1 小时前
命名空间与模块化概述
开发语言·前端·javascript
晓纪同学2 小时前
QT-简单视觉框架代码
开发语言·qt
威桑2 小时前
Qt SizePolicy详解:minimum 与 minimumExpanding 的区别
开发语言·qt·扩张策略
飞飞-躺着更舒服2 小时前
【QT】实现电子飞行显示器(简易版)
开发语言·qt
明月看潮生2 小时前
青少年编程与数学 02-004 Go语言Web编程 16课题、并发编程
开发语言·青少年编程·并发编程·编程与数学·goweb
明月看潮生3 小时前
青少年编程与数学 02-004 Go语言Web编程 17课题、静态文件
开发语言·青少年编程·编程与数学·goweb
Java Fans3 小时前
C# 中串口读取问题及解决方案
开发语言·c#
盛派网络小助手3 小时前
微信 SDK 更新 Sample,NCF 文档和模板更新,更多更新日志,欢迎解锁
开发语言·人工智能·后端·架构·c#
Chinese Red Guest3 小时前
python
开发语言·python·pygame