/**
* 描述:面向?qū)ο缶幊? * 對(duì)某種事物進(jìn)行抽象化,稱為"建模(model)",就像提取生物的基因.
* 一個(gè)模型稱之為一個(gè)類(class), 從而簡(jiǎn)化認(rèn)知, 找到規(guī)律
* 特征和屬性: 需氧/厭氧, 壽命(多方因素影響) -- 變量(屬性)
* 功能和行為: 進(jìn)食,奔跑,睡覺(jué),賣萌,求偶 -- 函數(shù)(方法)
* 繁殖: 繼承和多態(tài)
* 要?jiǎng)?chuàng)造一個(gè)具體的生物,必須予以配置參數(shù),即"實(shí)例化(instance)"
* 作者:jet
* 創(chuàng)建時(shí)間: 2017-11-21 15:51
* 修改人:
* 修改時(shí)間:
* 修改內(nèi)容:
*/
//快捷定義:class類名 constructor(屬性列表){更多屬性和方法描述}
//構(gòu)造器:用來(lái)設(shè)置類的新實(shí)例的出廠配置
open class Chinese2(var sex:Boolean,var region:String){
//普通屬性,與變量定義相似
protected open var skin ="yellow"
//組合屬性,由其他屬性計(jì)算而來(lái)(get)
val avgLife:Double
get() {
when(this.region){
"sh"->return 82.4
"ah"->return 77.8
else->return 73.4
}
}
var avgSalary:Int
get() {
when(this.region){
"sh"->return 4900
"ah"->return 3200
else ->return 3500
}
}
set(value) {
when(value){
in 4500..Int.MAX_VALUE->this.region="sh"
in 2800..3500->this.region="ah"
else->this.region="othre region"
}
}
//方法:廚藝
open fun cook() {
val menu= arrayOf("青椒炒肉絲","番茄炒蛋","紫菜蛋湯")
val desc = menu.reduce{s1,s2->s1+","+s2}
println("我會(huì)$desc")
}
}
//類的主要特點(diǎn):可以被繼承,但要標(biāo)記為開(kāi)放類(可見(jiàn)性修飾符:open)
//寫法:(class 子類:父類),然后可以用編輯器自動(dòng)補(bǔ)全構(gòu)造器
//子類獲得父類所有能力,同時(shí)可發(fā)展多樣性
class Shanghaiin2(sex:Boolean,region:String="sh"): Chinese2(sex,region) {
var dialect = "我港吳儂軟語(yǔ)"
override var skin="shanghaiYellow"
protected var city = "ShangHai"
}
//子類方法加成
class Sichuanwa2(sex: Boolean,region: String):Chinese2(sex,region){
override fun cook() {
super.cook()
val menu = arrayOf("麻婆豆腐","重慶毛血旺","諸葛烤魚(yú)")
val desc = menu.reduce{ s1, s2 -> s1 + "," + s2 }
println("我還會(huì)${desc}")
}
}
fun main(args: Array<String>) {
//實(shí)例化一個(gè)類
val obm = Shanghaiin2(true)
obm.avgSalary=3000
println(obm.region)
println(obm.dialect)
obm.cook()
val pj =Sichuanwa2(true,"tw")
pj.avgSalary=2000
println(pj.region)
pj.cook()
}
17.面向?qū)ο?/h2> ?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 面向?qū)ο缶幊?Object-Oriented Programming)介紹 OOP編程是利用“類”和“對(duì)象”來(lái)創(chuàng)建...
- 寫了好多好多的東西,看了許多許多文章。 下了好幾個(gè)讀書(shū)的軟件 本來(lái)什么都不想發(fā) 可是心血來(lái)潮發(fā)了兩個(gè) 突然想Q咪 ...