Scala語言的面向對像

2021-10-01 13:49:35 字數 2486 閱讀 9149

把資料及對資料的操作方法放在一起,作為乙個相互依存的整體——物件 物件導向的三大特徵:

簡單類和無參方法:

class counter 

//無參方法

def current() = value

} 注意沒有class前面沒有public關鍵字修飾。

代表學生資訊:

快捷鍵:alt+insert 可以看見:重寫函式

* * 代表學生資訊

* */

class student1

}object student1

}可以直接修改:

s1.stuid=19

println(s1.stuid)

可以修改不了,但是可以檢視:

//定義val常量型別 

private val ***:string="男"

// s1.***="女" 會報錯,因為定義的是常量,修改不了

println(s1.***)

當定義屬性是private時候,scala會自動為其生成對應的get和set方法

private var stuname:string = "tom"

get方法: stuname  ----> s2.stuname() 由於stuname是方法的名字,所以可以加上乙個括號

set方法: stuname= ----> stuname= 是方法的名字

定義屬性:private var money:int = 1000 希望money只有get方法,沒有set方法??

辦法:將其定義為常量private val money:int = 1000

private[this]的用法:該屬性只屬於該物件私有,就不會生成對應的set和get方法。如果這樣,就不能 直接呼叫。

private[this] val ***:string="男"

// println(s1.***) 提示報錯,因為不能被修改,也不能被檢視

1. 內部類(巢狀類)

我們可以在乙個類的內部在定義乙個類,如下:我們在student類中,再定義了乙個course類用於 儲存學生選修的課程。

import scala.collection.mutable.arraybuffer

/** * author:jackson

* date:20191220

* */

/**需求:

內部類(巢狀類)

我們可以在乙個類的內部在定義乙個類,

如下:我們在student類中,再定義了乙個course類用於 儲存學生選修的課程。

*/class student2

//構建乙個成績類

class course(var cname:string,var cgrade:int)

}object student2

}

結果:

類的構造器分為:主構造器、輔助構造器

主構造器:和類的宣告結合在一起,只能有乙個主構造器

輔助構造器:可以有多個輔助構造器,通過關鍵字this來實現 

/**

* 主構造器和輔助構造器

* */

class student3(var name :string,var age:int )

//第二個輔助構造器,可以依賴第一次輔助構造器,也可以依賴主構造器

def this()

def test(): unit =

}object student3

}

5. scala中的object物件 

scala沒有靜態的修飾符,但object物件下的成員都是靜態的 ,若有同名的class,這其作為它的伴生 類。在object中一般可以為伴生類做一些初始化等操作。

/**  

* 實現單例模式

*/ object creditcard

//測試程式

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

}

class student4(var stuname:string)

/**  */

object student4

}

————保持飢餓,保持學習

jackson_mvp

C語言中的面向對像

使用c語言實現c 物件導向的功能 cpp view plain copy print?用 c 語言實現類的繼承,並且可用父類指標操作子類對像的乙個測試例子 author tomken.zhang include include include 定義乙個動物類,有二個方法 struct v anima...

面向對像的原則

你不必嚴格遵守這些原則,違背它們也不會被處以宗教刑罰。但你應當把這些原則看成警鈴,若違背了其中的一條,那麼警鈴就會響起。arthur j.riel 1 所有資料都應該隱藏在所在的類的內部。2 類的使用者必須依賴類的共有介面,但類不能依賴它的使用者。3 儘量減少類的協議中的訊息。4 實現所有類都理解的...

面向對像第三節

提高了 的復用性 讓類與類之間發生關係有了這個關係 才有後面的多型 繼承是物件導向的三大特性之一 可以層層繼承 issubclass 檢查乙個類是否是另乙個類的子類 object是所有類的父類 如果在子類中有和父類重名的方法.通過子類的例項去呼叫方法時,會先在子類裡面找,再到父類裡面找,若還是沒有找...