Scala中的類和物件,實用樣例詳細解析!

2021-08-31 06:44:30 字數 1940 閱讀 6966

scala類

簡介類是物件的抽象,而物件是類的具體例項。類是抽象的,不占用記憶體,而物件是具體的,占用儲存空間。類是用於建立物件的藍圖,它是乙個定義包括在特定型別的物件中的方法和變數的軟體模板。

scala中的類不宣告為public,乙個scala原始檔中可以有多個類。

scala簡單例項

class point(xc: int, yc: int)  }

object test } ```

scala抽象類

抽象類是一種不能被例項化的類,抽象類中包括了若干不能完整定義的方法,這些方法由子類去擴充套件定義自己的實現。

```abstract class animal

//person繼承animal,對eat方法進行了實現 //通過主構造器對height引數進行了初始化 class person(var height:int) extends animal

} 簡介

重寫乙個非抽象方法必須使用override修飾符。

重寫超類的抽象方法時,不需要使用override關鍵字。

只有主建構函式才可以往基類的建構函式裡寫引數。

繼承會繼承父類的所有屬性和方法,scala 只允許繼承乙個父類。

scala簡單例項

```class point(xc: int, yc: int) }

class location(override val xc: int, override val yc: int, val zc :int) extends point(xc, yc)

def move(dx: int, dy: int, dz: int) }

object test } ```

scala單例物件

簡介在scala中,是沒有static的,但是提供了單例模式的實現方法,那就是使用關鍵字object。

scala中使用單例模式時,除了定義的類之外,還要定義乙個同名的 object物件,它和類的區別是,object物件不能帶引數。

簡單例項

object student def main(args: array[string]): unit = }

伴生類與伴生物件

簡介當單例物件與某個類是同乙個名稱時,單例物件被稱作是這個類的伴生物件,類被稱為是這個單例物件的伴生類。必須在同乙個原始檔裡定義伴生類和伴生物件。它們可以互相訪問其私有成員。

簡單例項

```class student(var name:string,var age:int)

object student def main(args: array[string]): unit = } ```匿名類

當某個類在程式中只使用一次時,可以將類定義為匿名類。

```//抽象的person類 abstract class person(name:string,age:int)

object demo } s.walk() } } ```

多型與動態繫結

簡介多型(polymorphic)也叫動態繫結(dynamic binding)、遲繫結(late binding),指在執行期間(而非編譯期間)判斷所引用物件的實際型別,根據其實際型別呼叫其相應的方法。子類的引用可以賦給父類。

簡單例項

```//抽象person類 abstract class person(var name:string,var age:int)

class student(name:string,age:int) extends person(name,age) }

class teacher(name:string,age:int) extends person(name,age) }

object demo } ```

scala程式設計 樣例類

樣例類在scala中是第一種特殊的類,可用於模式匹配 但在基於版本2.11.8測試中普通的類也能進行模式匹配 case class是多例的,後面需要加引數 無參也要加上括號 case object 是單例的。import scala.util.random abstract class animal...

Scala模式匹配和樣例類

scala 有乙個十分強大的模式匹配機制,可以應用到很多場合 如 switch 語句 型別檢查等。並且 scala 還提供了樣例類,對模式匹配進行了優化,可以快速進行匹配。package cn.cheng.cases import scala.util.random val arr array ha...

Scala 模式匹配和樣例類

scala的模式匹配機制,可以應用到很多場合 scala還提供了樣例類,對模式匹配進行了優化,可以快速進行匹配 匹配字串 todo 匹配字串 類似 switch 定義乙個陣列 val arr array hadoop zookeeper spark storm 隨機取陣列中的一位,使用random....