按照慣性 先來一波基礎(chǔ)中的基礎(chǔ) :
1.變量和常量:
* 變量的申明 主要有兩種 var 和val 請注意最后一個字母
* var :聲明 可變 變 量,默認為private。 幫助記憶: variable 可變的
* val :聲明 只讀 變 量 ,默認為private。
* 一個是可變 一個是只讀 只讀 只能賦值一次 這個尤其重要。
eg:
// 如果賦了初始值值,可以省略數(shù)據(jù)類型
val a = 1.0
val b: Int = 1
var painNum = ""
val num = 23
var g = 33
g += 1
// num+=2;//會報錯; 說好的只讀 只能賦值一次;
// ${a}類似于String.valueof(a)
Log.e("Xiaoya", "value num :${a}")
另外 ~~ 敲黑板~~~~ 在kotlin中取消了static關(guān)鍵字 那我想用咋辦 ,這不出來了一個const關(guān)鍵字兒,咋用?
val MainStartActivity = "/main/StartActivity"
這只是一個對象,而如果我們想在其他的類里邊使用,而又不想實例化這個類,我們就會想到靜態(tài)變量了,但是 Kotlin 取消了 static 關(guān)鍵字,我們又該怎么寫呢?代碼如下:
const val MainStartActivity = "/main/StartActivity"
使用如下:
var path = MainStartActivity
之所以不是類名.對象,因為Kotlin 已經(jīng)自動完成了導(dǎo)包。
下面再來兩個栗子??:
val MainStartActivity = "/main/StartActivity"
//對應(yīng)的 Java 代碼
public final class ActivityPathToolKt {
@NotNull
private static final String MainStartActivity = "/main/StartActivity";
@NotNull
public static final String getMainStartActivity() {
return MainStartActivity;
}
}
const val MainStartActivity = "/main/StartActivity"
//對應(yīng)的 Java 代碼如下:
public final class ActivityPathToolKt {
@NotNull
public static final String MainStartActivity = "/main/StartActivity";
}
另外需要注意:const只能修飾val,不能修飾var
再來個常量類的栗子??:
class Constans {
companion object {
const val LOGIN_SUC = "login_suc"
const val LOGIN_FAIL = "login_fail"
}
}
下面是使用:
Log.d("Xiaoya", LOGIN_SUC + LOGIN_FAIL)
2.Kotlin中修飾可見性一共四個關(guān)鍵字:
public:默認修飾符,全局可見。
private:作用域僅為當(dāng)前所在源文件。val常量和var變量,默認都是private的。
internal:作用域為當(dāng)前模塊。同一模塊都可見。
protected:作用域為當(dāng)前所在類以及其子類
3.數(shù)據(jù)類型數(shù)字
Kotlin 提供了如下的內(nèi)置類型來表示數(shù)字(與 Java 很相近)。
Type Bit width
Double 64
Float 32
Long 64
Int 32
Short 16
Byte 8
這里要說明一下,Kotlin 處理數(shù)字在某種程度上接近 Java,但是并不完全相同。如不支持數(shù)字隱式拓寬轉(zhuǎn)換,即自動向上轉(zhuǎn)型(如 Java 中 int 可以隱式轉(zhuǎn)換為long)。字符
字符用 Char 類型表示。它們不能直接當(dāng)作數(shù)字.字符字面值用單引號括起來: ‘1’。 特殊字符可以用反斜杠轉(zhuǎn)義。 支持這幾個轉(zhuǎn)義序列:\t、 \b、\n、\r、\’、\”、\ 與 $。 編碼其他字符要用 Unicode 轉(zhuǎn)義序列語法:’\uFF00’。布爾
布爾用 Boolean 類型表示,它有兩個值:true 與 false。這個和Java是一樣的。數(shù)組
數(shù)組在 Kotlin 中使用 Array 類來表示,它定義了 get 與 set 函數(shù)(按照運算符重載約定這會轉(zhuǎn)變?yōu)?[])以及 size 屬性,以及一些其他有用的成員函數(shù)
4.方法的申明;
/**
* 普通方法 有return 第一種寫法
*/
fun add(num1: Int, num2: Int): Int {
return num1 + num2
}
/**
* 普通方法 有return 第二種寫法
*/
fun add(num1: Int, num2: Int, num3: Int): Int = num1 + num2 + num3
/**
* 普通方法 無return 第一種寫法
*/
fun printAdd(num1: Int, num2: Int): Unit {
Log.e("Xiaoya", (num1 + num2).toString())
}
/**
* 普通方法 無return 第二種寫法 Unit 可以省略
*/
fun printAdd(num1: Int, num2: Int, num3: Int) {
Log.e("Xiaoya", (num1 + num2 + num3).toString())
}
/**
* 三元表達式 可讀性強;
*/
fun max(a: Int, b: Int) = if (a > b) a else b