目前分類:基本語法 (10)

瀏覽方式: 標題列表 簡短摘要

指定class去新增方法,project內的指定class就能擁有此方法

fun class.newMethod(){
    //實作
}

指定class去新增Companion方法,project內的指定class就能擁有此方法

JBLin 發表在 痞客邦 留言(0) 人氣()

a.let{//回傳新物件,block中用it代表原本的物件(it.method()、it.value)
 it = a

JBLin 發表在 痞客邦 留言(0) 人氣()

object?.let{
    object is not null to do something
}?: run{
    object is null to do something
}

JBLin 發表在 痞客邦 留言(0) 人氣()

//abstract 宣告
abstract class testAbstract{
    abstract fun function1()
}
//abstract 實作
class extendsAbstract : testAbstract() {
    override fun function1() {
        Log.d("test","function1")
    }
}

使用方法:
extendsAbstract().function1()

輸出結果:
function1

JBLin 發表在 痞客邦 留言(0) 人氣()

//介面宣告
interface testInterface{
    fun function1()
}
//介面實作
class testClass:testInterface{
    override fun function1() {

    }
}

使用方法:
testClass().function1()

輸出結果:
function1

JBLin 發表在 痞客邦 留言(0) 人氣()

要可被繼承需要加上 open 

open class parent{
    
}
class child :parent(){
    
}

JBLin 發表在 痞客邦 留言(0) 人氣()

class testClass(){ //預設參數

    fun function(value1:Int=1,value2: Int=2){
        Log.d("test", "function:"+value1+":"+value2)
    }
}


使用方法:

JBLin 發表在 痞客邦 留言(0) 人氣()


函數預測參數

JBLin 發表在 痞客邦 留言(0) 人氣()

val a:Int = 8_8 //常數 不可轉換數值..底線為分隔觀看用(程式會省略)
var b = 2 //不定義的變數
var c:Double = 2.5 // 8byte 浮點數
var d:Float = 3.5.toFloat() // 4byte 浮點數
var e:Long = 4 // 8byte 整數
var f:Int = 5 // 4byte 整數
var g:Short = 6 // 2byte 整數
var h:Byte = 7 // 1byte 整數
Log.d("test", a.toString()+":"+b+":"+c+":"+d+":"+e+":"+f+":"+g+":"+h)
輸出結果:
88:2:2.5:3.5:4:5:6:7

JBLin 發表在 痞客邦 留言(0) 人氣()

if語法
var a = 1
var b = 2
if(a<b) Log.d("test", "test1")
if(a<b) {
    Log.d("test", "test2")
}else{
    Log.d("test", "test3")
}
var min = if(a<b) {
    Log.d("test", "test4")
    a //回傳值給min 要放最後面
}else{
    Log.d("test", "test5")
    b //回傳值給min 要放最後面
}
Log.d("test",min.toString())

when語法(可取代switch) 每行後面接有break的效果
var n = 2
when(n){
    2 -> Log.d("test", "test1")
    2,3 -> Log.d("test", "test2")
    in 1..2 -> Log.d("test", "test3")
    !in 4..3 -> Log.d("test", "test4")
    else -> Log.d("test", "test5")
}
for迴圈
var arr = intArrayOf(1,2,3,4);
for ((index,value) in arr.withIndex()) //帶index和value
    Log.d("test", index.toString()+ " : " +value)
for (value : Int in arr) //帶value
    Log.d("123", value.toString())

while迴圈
var value = 10;
while (value-- > 0) {
    Log.d("test", value.toString())
}
do{
    Log.d("test", value.toString())
}while (value-- > 0)

JBLin 發表在 痞客邦 留言(0) 人氣()