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