大学期间上系统分析时,教授在台上说:
「今天的内容呢,是 Class 的 Class 。」
???????????
现场很冷,比我的心还冷。
这甚麽?到底甚麽 class?
Class 在物件导向是很重要的概念,class 里会有属性( attribute )跟方法 ( method )去定义这个 class ,class 利用属性来表达状态,方法让这个 class 可以做到甚麽事情。下面有个简单的属性范例:
class Car{
val wheels = listOf<Wheel>()
}
汽车有轮子,电脑前有胖子,欸嘿就是我。
上面的范例就清楚的表达出,Wheels 是 Car 的属性,这边因为 val 前面没有宣告,所以程序预设这个变数为 public ,意思就是其他程序可以直接从外部去拿到 Wheels 这个属性,如果是想要设定为只有限定所在的 class 可以使用属性,可以宣告成 private。
如果有另一个程序需要使用 Car 这个 Class 的实例,必须先调用建构函式,这样你就可以使用这个 class 了。
val car = Car() //建构(construct)一台车
val Wheels = Car.wheels //从 Car class 获取wheels 的值
如果希望自定义轮子,可以定义一个自定义构造函数,用来初始化 class 属性:
class Car constructor(var wheels: List<Wheel>, var color: String)
我们也可以直接值加到建构式里面:
class Car constructor(var wheels: List<Wheel> = listOf<Wheel>, var color: String = "Red")
甚至是连 constructor 都省略:
class Car(var wheels: List<Wheel> = listOf<Wheel>, var color: String = "Red")
车子有了轮子,就可以开了吗?
不会,他还不会。
所以我们将方法写进去 class 里面,让他会。
class Car{
val wheels = listOf<Wheel>()
val color = "Red"
fun go(){
println("车在动欸")
}
fun stop(){
println("停了")
}
}
跟上面使用属性的做法一样,先建一个实例出来,就可以去调用他的方法啦。
如果要在main 函式中调用这个 class 可以这麽写:
fun main(){
var car = Car()
println(car.color)
car.go()
car.stop()
}
赞啦!
基本的 class 介绍就先到这边,明天应该是第二周的回顾跟补充一点点东西。
下一篇见写写打家打家摆掰。
<<: Day14 Vue directives(v-for)上
>>: Day 13 - Semigroup II & Monoid
嗨,各位 昨天我们介绍过flac这好用的开源东东了 今天我要来介绍在linux上一个一样你(你)可以...
收集完大数据,管理与查找大数据的工具也同等重要,譬如我想知道我某天去某间咖啡厅点了什麽饮料,即使手机...
Vue 里面的事件处理,使用的方式会跟一般 JavaScript 的用法相近,下面跟着一起看吧~ 事...
发生的一个加密货币Token投资的小故事 最近区块链,加密货币一直是现在趋势潮流的新宠儿,无论朋友的...
git在8/12停止了使用帐号密码作为资料上传的验证,改为较为安全的ssh,所以假如你使用帐号密码作...