Kotlin实战指南二:变量、常量、静态常量
轉載請標明出處:https://blog.csdn.net/zhaoyanjun6/article/details/87811333
本文出自【趙彥軍的博客】
Kotlin初體驗二:變量、常量、靜態常量
- 變量
- 常量
- 靜態常量
- 伴生
- 實戰演練
變量
Java中的變量
public class App {private String name; //定義一個變量 }Kotlin中的變量,用 var 修飾
class App {var name = "abc" }這樣寫,相當于
public final class App {@NotNullprivate String name = "abc";@NotNullpublic final String getName() {return this.name;}public final void setName(@NotNull String var1) {Intrinsics.checkParameterIsNotNull(var1, "<set-?>");this.name = var1;} }Kotlin定義的變量,默認有 getXXX 、 setXXX 方法
常量
Java定義一個常量,用 final 修飾
public class App {final String NAME = "zhaoyanjun"; //定義一個常量 }Kotlin定義一個常量,用 val 修飾
class App {val NAME = "zhaoyanjun" }這樣寫,相當于
public final class App {@NotNullprivate final String NAME = "zhaoyanjun";@NotNullpublic final String getNAME() {return this.NAME;} }Kotlin定義的常量,默認有 getXXX 方法,沒有 setXXX 方法
靜態常量
Java中的靜態常量, 用 final 、static 修飾
public class App {final static String NAME = "zhaoyanjun"; //定義一個靜態常量 }Kotlin定義一個靜態常量,用 object、val 修飾
用object 修飾的類為靜態類,里面的方法和變量都為靜態的。
這樣寫,相當于
public final class App {@NotNullprivate static final String NAME = "zhaoyanjun";public static final App INSTANCE;@NotNullpublic final String getNAME() {return NAME;}public final int add(int a, int b) {return a + b;}static {App var0 = new App();INSTANCE = var0;NAME = "zhaoyanjun";} }Kotlin 代碼調用
App.NAME //調用靜態常量 App.add(3,5) //調用靜態方法綜上,我就完美的解決了靜態常量,靜態方法的問題。但是等等,我們發現一個問題,用 object 修飾的類中所有的方法都成了靜態了,這不是我們希望看到的結果,我們希望能夠在一個普通類中,可以有靜態方法,也可以有非靜態方法。有什么解決方案嗎?
答案當然是有的,就是下面我們要講的伴生。
伴生
Kotlin中實現伴生對象用 companion object 來實現
class App {companion object {//靜態常量val NAME = "zhaoyanjun"//靜態方法fun add(a: Int, b: Int): Int {return a + b}}//非靜態常量val age = 20//非靜態方法fun remove(a: Int, b: Int): Int {return a - b}}這樣寫,就相當于
public final class App {private final int age = 20;@NotNullprivate static final String NAME = "zhaoyanjun";public static final App.Companion Companion = new App.Companion((DefaultConstructorMarker)null);public final int getAge() {return this.age;}public final int remove(int a, int b) {return a - b;}public static final class Companion {@NotNullpublic final String getNAME() {return App.NAME;}public final int add(int a, int b) {return a + b;}private Companion() {}} }調用
//調用靜態常量,靜態方法 App.NAME App.add(3, 4)//調用非靜態常量、非靜態方法 App().age App().remove(4, 3)實戰演練
在Android開發中,我們通常需要在 Application 類中提供一個 Application 實例和 ApplicationContext 實例
Java 代碼實現方式
public class App extends Application {public static Application mInst;public static Context mContext;@Overridepublic void onCreate() {super.onCreate();mInst = this;mContext = getApplicationContext();} }Kotlin實現方式
class App : Application() {override fun onCreate() {super.onCreate()mInst = thismContext = applicationContext}companion object {var mInst: Application? = nullvar mContext: Context? = null} }調用
App.mInstApp.mContext個人微信號:zhaoyanjun125 , 歡迎關注
總結
以上是生活随笔為你收集整理的Kotlin实战指南二:变量、常量、静态常量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Kotlin实战指南一:集合
- 下一篇: Kotlin实战指南三:流程控制