学习kotlin第四天 函数第二天 做的不太好见谅
1、判断调用
val liao = Student("liao",18)
val zhaoZhiCheng = Student("zhaoZhiCheng",19)
val zhaoJiaXin = Student("zhaoJiaXin",20)
//打印出他是true 还是false
println(liao < zhaoJiaXin)
println(liao < zhaoZhiCheng)
println(zhaoJiaXin < zhaoZhiCheng)
2、返回我门的一个值
class Student(val name: String, val age: Int){
operator fun compareTo(other:Student):Int{
if(age > other.age){
return 1
}else if (age < other.age) {
return -1
}else{
return 0
}
return when{
age > other.age -> 1
age < other.age -> -1
else -> 0
}
}
}
3、返回加法的一个和
var counter = Counter(2)
println(counter)
counter = counter + 3
println(counter)
class Counter(val a:Int){
operator fun plus(b:Int) = Counter(a+b)
}
4、乘法直接调用
println( 12.chengFa(2,3))
fun Int.chengFa(a:Int,b:Int) = a *b
5、倍数
class MyNumber(var k:Int){
private fun Int.triple() = this * this * this
fun addFactor(p: Int) {
k += p.triple()
}
}
6、
//调用
val al = Element("铝")
al.react(Particle())
al.react(Electron())
//类似于我们java学过的一些继承
open class Particle()//粒子
class Electron:Particle()//电子
open class Element(val name:String){//元素
open fun Particle.react(name:String):Unit{
println("$name 与粒子发生反应")
}
open fun Electron.react(name:String):Unit{
println("$name 与电子发生反应生成同位素")
}
open fun react(paricle:Particle):Unit{
paricle.react(name)
}
open fun a(){
println("aaa")
}
open fun result(elemnet:Element){
elemnet.a()
}
}
7、类似于我们在java学习过的多态在我们学习这个过程中不一定可以看懂 就和我们刚刚接触这种语言的时候就就好 认真的去看一些博客的讲解,或者网络上的视频
val neon = NobleGas("氩")
neon.react(Particle())
neon.react(Electron())
//调用
class NobleGas(name:String):Element(name){//惰性气体
override fun a(){
println("ccc")
}
override fun result(elemnet:Element){
elemnet.a()
// println("ccc")
}
override fun Particle.react(name:String):Unit{
println("$name 是稀有气体,不与粒子发生反应")
}
override fun Electron.react(name:String):Unit{
println("$name 是稀有气体,不与电子发生反应")
}
fun f(){
var particle:Particle = Particle()
particle.react("氩")
var particle2:Particle = Electron()
particle2.react("氩")
}
override fun react(particle:Particle):Unit{
particle.react(name)
}
fun react2(particle:Particle):Unit{
particle.react(name)
}