把資料及對資料的操作方法放在一起,作為乙個相互依存的整體——物件 物件導向的三大特徵:
簡單類和無參方法:
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是所有類的父類 如果在子類中有和父類重名的方法.通過子類的例項去呼叫方法時,會先在子類裡面找,再到父類裡面找,若還是沒有找...