Android開發(fā)kotlin學習(一)

這篇主要講的是kotlin中的基本類型定義和類的相關部分

1.Androidstudio環(huán)境搭建

這個就不多說了,網(wǎng)上很多,這里給個網(wǎng)址,可以參考http://www.runoob.com/kotlin/otlin-android-setup.html

2.定義常量與變量

kotlin的語法是和Java語法不一樣的,先看下面這段話:

公式:
變量公式: var <標識符> : <類型> = <初始化值>
常量定義: val <標識符> : <類型> = <初始化值>

/**
* 常量  val = value  類似于Java的final,不可能重復賦值
* -運行時常量    val x = "HelloWorld"  運行時才能確定它的值
* -編譯時期常量  const val x = "HelloWorld"  編譯時,所有x的引用都將被替換成字面量(HelloWorld)
*/

/**
* 變量  var = variable
*
* -var x = "HelloWorld"  定義變量
* -var x = "ByeByeWorld" 再次賦值
*/

//常用數(shù)據(jù)類型的定義
val A : String = "abc"    可以寫成  val A = "abc"  系統(tǒng)自動推斷變量類型為String
val B : Int = 123
val C : Float = 123F
var D : Double = 123.0
var E : Boolean = true
var F : Long = 123L

ok,上面這些就是咱們會常用的數(shù)據(jù)類型,還有需要注意的事項.下面上一段代碼:

val string : String = "abc"
val mstring : String = String(charArrayOf('a','b','c'))

fun main(args: Array<String>) {  //kotlin中的主函數(shù)入口就是這個main函數(shù)啦..

    println(string == mstring)     //kotlin中, == 符號,和Java中的equals有相同效果
    println(string === mstring)   //三個等號比較對象是否相同
    //kotlin的輸出字符串模板
    val a : Int = 1
    val b  = 1
    println("$a + $b = ${a + b}")
}

看下輸出的結果是啥:

這里有個字符串的模板,這個是比較簡便的地方.

3.類

這個咱們慢慢來,怎么創(chuàng)建一個類?



OK了,創(chuàng)建好了,我又想給這個girl增加一點描述信息,比如,年齡性別姓名老一套吧...別問我為啥girl還需要性別,當代社會呀...



好了,又加上了,加上這些信息啥時候用呢,那就初始化的時候用吧,改怎么辦?

constructor:類在構造的時候要調(diào)用,只有一個可以省略,這里是標準的寫法,inint部分其實就是構造方法的方法體.

在往下來,現(xiàn)在想讓女生繼承一個父類,這個父類姑且為person,這個父類該怎么定義呢

//父類在被繼承的時候需要open  所有類都繼承自Any
open class person(var age:String,var sex:String,var name:String){
    init {
        println("new 了一個${this.javaClass.simpleName},ta年紀:$age,性別:$sex,名字:$name")
    }
}
//這時候girl類需要改成這樣:
class girl constructor(age:String, sex: String, name:String): person(age,sex,name)

整體看下:

//父類在被繼承的時候需要open  所有類都繼承自Any
open class person(var age:String,var sex:String,var name:String){
    init {
        println("new 了一個${this.javaClass.simpleName},ta年紀:$age,性別:$sex,名字:$name")
    }
}

//繼承自person
class girl constructor(age:String, sex: String, name:String): person(age,sex,name)

class 帥哥(性格:String,長相:String,聲音:String) {
    init {
        println("new 了一個帥哥,他性格:$性格,長相:$長相,聲音:$聲音")
    }
}

fun main(args: Array<String>) {

    val Girl: girl = girl("20", "nv", "haha")//constructor類在構造的時候要調(diào)用,只有一個可以省略
    val 我膜拜的帥哥: 帥哥 = 帥哥("彪悍", "丑陋", "傻了吧唧")
    println(Girl is person)//判斷Girl是否屬于person

}

結果:


4.kotlin中如何定義方法(函數(shù))

/**
 * - fun 方法名(參數(shù)):返回值類型{
 *         //方法體
 *   }
 *
 * */
  • ①有返回值的
//這是最基本的函數(shù)定義
fun add(a : Int,b : Int):Int{
    return a + b
}
//這個函數(shù)還可以簡化嗎?當然可以,如果一個函數(shù)只是返回表達式的值,可以直接等于就可以了:
fun add(a : Int,b : Int) = a + b//可以簡化為這樣
再舉個例子
fun sayHello(person : String) = println("$person" + "說:Hello")


  • ②沒有返回值的


    從圖中也可以看出,按照標準的寫法,這里的返回值類型是Unit,Unit代表的是無返回值,相當于Java的void,可以省略,可以寫成這樣:


  • ③不用函數(shù)名的函數(shù):在kotlin中,如果用一個變量直接接受一個函數(shù)的返回值,那么這個函數(shù)是不需要加函數(shù)名的,例如:
var Int2Long = fun(x:Int):Long{
    return x.toLong()
}

在使用的的時候:


ok,這篇先寫這么多,有問題歡迎指出,我是不會改的,啊哈哈哈哈哈哈........


最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容