Scala学习笔记(二):object、伴生对象和基本类

object

object 是只有一个实例的类。它的定义与Java中的class类似,如:

// 单例对象
object AppEntry {
    def main(args: Array[String]): Unit = {
      print("Hello World!")
    }
}

其中有main方法,它与脚本运行方式不同,需要先编译(scalac),后运行,与java类似:

App

运行object,除了使用main方法,还可以直接继承trait(类似于Java中的接口)--App:

object AppEntry1 extends App {
  print("Hello World, by extends App!")
}

伴生对象

与类同名的对象称为伴生对象。相反,该类是对象的伴生类。伴生类或对象可以访问其伴随的私有成员。将伴生对象用于方法和值,这些方法和值不是特定于伴生类的实例。

import scala.math._

case class Circle(radius: Double) {

  import Circle._

  def area: Double = calculateArea(radius)
}

object Circle extends App {
  private def calculateArea(radius: Double): Double = Pi * pow(radius, 2.0)

  val circle1 = new Circle(5.0)
  print(circle1.area)
}

基本类

object BasicType extends App{
  //1、基本类型
  val int = 1
  val short: Short = 2
  val byte: Byte = 3
  val long = 3L
  val double = 3.23
  val float = 3.23F
  val boolean = false
  val char = 'c'

  //2、String类型
  val string = "this is a string" //sequence of char
  println(s"Hello, $string")
  println(s"The answer is ${6 * 7}")

  println(raw"No\\escape!") // No\\escape!
  println(s"Has\\escape!") // Has\escape!

  println(f"${math.Pi}%.5f") //3.14159

  val pi = "Pi"
  println(f"$pi is approximately ${math.Pi}%.8f.")

  //3、scala中的操作符(operator)和方法(method)
  //scala中的基本类型提供了很多的操作符(比如1 + 2中的+),这些操作符实际上是方法
  1 + 2
  1.+(2)
  1.+(2L) //方法 + 的重载

  //4、方法的调用与操作符
  val s = "Hello, world!"
  s.indexOf('o') //这里的indexOf是方法
  s indexOf 'o' //这里的indexOf是操作符
  s indexOf ('o', 5)

  //基本类型的部分操作符就是方法,在scala中,所有的方法都可以是操作符
  //是方法还是操作符取决于你怎么用
  //如果s.indexOf('o')这样用,那么indexOf是方法
  //如果s indexOf 'o'这样用,那么indexOf是操作符

  s.substring(1)
  s substring (1,2)

  //prefix操作符
  -2.0
  (2.0).unary_- //等于-2.0
  //postfix操作符
  s toLowerCase


  //4、基本类型的其他的操作符
  //4.1 数学运算 + - * / %
  //4.2 关系运算 < > <= >= =
  //4.3 逻辑运算 || && !
  //4.4 位运算 & | ^ ~
}
原文地址:https://www.cnblogs.com/yw0219/p/10067697.html