Scala 伴生對象

2022-05-13 15:16 更新

在Scala中,類和對象可以共享同一個名稱。

當一個對象與一個類共享一個名稱時,它被稱為伴生對象,并且該類被稱為伴生類。

伴生對象是與另一個類或特征共享相同名稱和源文件的對象。

一個trait可以看作是一個Java接口。

這種方法允許我們在類上創(chuàng)建靜態(tài)成員。

伴生對象對實現(xiàn)輔助方法和工廠很有用。

要實現(xiàn)一個創(chuàng)建不同類型的形狀的工廠,我們可以在Scala中創(chuàng)建一個形狀工廠。

例子

我們使用一個伴生類Shape和一個伴生對象Shape,作為一個工廠。

trait Shape {
    def area :Double
}
object Shape {
    private class Circle(radius: Double) extends Shape{
        override val area = 3.14*radius*radius
    }
    private class Rectangle (height: Double, length: Double)extends Shape{
        override val area = height * length
    }
    def apply(height :Double , length :Double ) : Shape = new Rectangle(height,length)
    def apply(radius :Double) : Shape = new Circle(radius)

}

object Main extends App {
    val circle = Shape(2)
    println(circle.area)
    val rectangle = Shape(2,3)
    println(rectangle.area)
}

注意

與伴生類不共享相同名稱的單例對象稱為獨立對象。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號