Scala 025 单例对象

Scala 单例对象

scala中没有Java中的静态成员,若想要定义类似于Java的static变量、static方法,就要使用到scala中的单例对象——object.

  • 单例对象表示全局仅有一个对象(类似于Java static概念)
  • 定义单例对象和定义类很像,就是把class换成object
  • 在object中定义的成员变量类似于Java的静态变量
  • 可以使用object直接引用成员变量

例如:

  1. 定义一个Dog单例对象,保存狗有几条腿
  2. 在main方法中打印狗腿的数量
package demo02

object Scala07 {

  // 定义一个单例对象
  object Dog {
    // 定义腿的数量
    val LEG_NUM = 4
  }

  def main(args: Array[String]): Unit = {
    println(Dog.LEG_NUM)
  }
}

在单例对象中定义成员方法

在object中定义的成员方法类似于Java的静态方法
例如:

  1. 设计一个单例对象,定义一个能够打印分割线(15个减号)的方法
  2. 在main方法调用该方法,打印分割线
package demo02

object Scala08 {

  object PrintUtil {
    // 打印分割线
    def printSpliter() = {
      // 字符串乘法,表示返回多少个字符串
      println("-" * 10)
    }
  }

  def main(args: Array[String]): Unit = {
    PrintUtil.printSpliter()
  }
}

例如:

  1. 编写一个DateUtil工具类专门用来格式化日期时间
  2. 定义一个方法,用于将日期(Date)转换为年月日字符串,例如:2030-10-05

步骤:

  1. 定义一个DateUtil单例对象,定义日期格式化方法(format)
  2. 使用SimpleDateFormat将日期转换为字符串
package demo02

import java.text.SimpleDateFormat
import java.util.Date

object Scala09 {

  object DateUtils {
    // 在object中定义的成员变量,相当于Java中定义一个静态变量
    // 定义一个SimpleDateFormat日期时间格式化对象
    val simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm")

    // 相当于Java中定义一个静态方法
    def format(date: Date) = simpleDateFormat.format(date)
  }

  // main是一个静态方法,所以必须要写在object中
  def main(args: Array[String]): Unit = {
    println(DateUtils.format(new Date()))
  }
}

发布了293 篇原创文章 · 获赞 184 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_42072754/article/details/105133199
今日推荐