Scala-Scala語言的面向對象(四)Scala中的Object對象


大數據技術之Scala

======第一篇:Scala編程語言=====

Scala語言的面向對象(四)Scala中的Object對象

Scala沒有靜態的修飾符,但Object對象下的成員都是靜態的 ,若有同名的class,這其作為它的伴生類(伴生對象)

在Object中一般可以為伴生類做一些初始化等操作。

注意:main方法一定寫在object中,但是不一定必須寫在伴生對象中。

下面是Java中的靜態塊的例子。在這個例子中,我們對JDBC進行了初始化。

而Scala中的Object就相當於Java中靜態塊。

Object對象的應用

1.單例對象-object

單例模式-一個類只有一個對象

java中實現模式:把類的構造器定義成private的,提供getInstance方法,返回對象。

scala中實現模式:用object對象實現。

 

 Scala代碼實現:

 

package mianxiangduixiang.lei /** * object對象 * 實現單例模式 * 信用卡 */ object ObjectDanLiCreditCard { //實現單例模式 //定義一個變量保存信用卡卡號 //private [this]代表不會自動生成get set方法
  private [this]var creditCardNumber:Long=0
  //定義一個函數來產生卡號
  def generateCCNumber():Long={ creditCardNumber+=1 creditCardNumber } //測試程序
  def main(args: Array[String]): Unit = { println(ObjectDanLiCreditCard.generateCCNumber()) println(ObjectDanLiCreditCard.generateCCNumber()) println(ObjectDanLiCreditCard.generateCCNumber()) println(ObjectDanLiCreditCard.generateCCNumber()) println(ObjectDanLiCreditCard.generateCCNumber()) println(ObjectDanLiCreditCard.generateCCNumber()) println(ObjectDanLiCreditCard.generateCCNumber()) } }

 

2.使用應用程序對象:可以省略main方法;需要從父類App繼承。

使用APP對象-應用程序對象,好處:可以省略main方法

 

Scala代碼實現:

 

package mianxiangduixiang.lei /** * object對象 * 應用程序對象-使用APP對象 * HelloWord */ object ObjectAppDuiXiangHelloWord extends App { //繼承App后不用再寫main()了,直接寫main()里面的程序即可
  println("Hello Word") //對於原來main()里的args參數,直接使用即可
  if(args.length>0) { println("有參數") }else{ println("沒有參數") } }

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM