zoukankan      html  css  js  c++  java
  • 5.scala中的对象

    排版乱?请移步原文获得更好的阅读体验

    1.单例对象

    scala中没有静态类或者静态方法,都是通过object实现的,它表示某个类的单例对象。如object People是class People的单例对象。

    2.伴生对象

    java中有些类可能会既有静态方法又有实例方法,在scala中静态方法存在于对象中,也就意味中scala中需要有这么一个东西,它既是类,也含有对象。其中的对象就是类的伴生对象,同样的,类就是对象的伴生类。需要注意的是类和它的伴生对象可以相互访问私有属性,它们也必须存在于同一个源文件中。如:

    scala    14行

    class People{
     private val name:String = ""
       def run()={
       ……
       }
    }
    
    object Peole{
     private var age:Int
       def age(){
       this.age += 1
       }
    }
    

    3.apply方法

    调用apply方法其实是调用的类对应的伴生对象的apply方法,apply方法类似于使用构造器,但是在嵌套结构中使用apply方法能省去使用new。Array("marry","alice")其实是调用了Array类对应的伴生对象的apply方法。看一个实例:

    scala    12行

    class Peopel(salary:Int){
    	……
    }
    
    object People{
     def apply(salary:Int):People= {
       	new People(salary)
       }
    }
    
    val p = People(100) //此处调用了伴生对象的apply方法
    

    4.枚举

    scala中没有枚举类型,实现方式是通过Enumeration产出枚举。比如:

    scala    9行

    object ColorEnum extends Enumeration {
     val Red,Green,Yellow = Value //调用了Value方法生成三个枚举值
       /*相当于
       val Red = Value
       val Green = Value
       val Yellow = Value
       */
    }
    

    更多文章请关注微信公众号:bigdataer

  • 相关阅读:
    使用密码解密TACACS+的报文
    C9K Stackwise Virtual(三)
    Webhook Configuration Example
    sup-bootflash和bootflash
    WLC5508 license没有500个?
    AAA Server Groups
    关于FlexConnect的Bug!
    Bug搬运工-CSCve57121--Cisco 2800, 3800 and 1560 series APs fail to pass traffic
    Bug搬运工-CSCvb29354-1810 OEAP cannot join vWLC
    阿里云云计算认证ACP模拟考试练习题第1套模拟题分享(共10套)
  • 原文地址:https://www.cnblogs.com/bigdataer/p/6567820.html
Copyright © 2011-2022 走看看