淺談Kotlin(五): 靜態變量&靜態方法


Java中定義靜態變量和方法:

public class XUtils {

    // utils版本號
    public static String utilVersion="1.0";

    /**
     * 顯示金額,負數為-¥0,非負數為¥0
     * @param tv     文本控件
     * @param price  金額
     */
    public static void showPirce(TextView tv , String price ){
        int result = new BigDecimal(price).compareTo(BigDecimal.ZERO);
        if (result>=0)
        {
            tv.setText("¥" + new BigDecimal(price));
        }else
        {
            tv.setText("" + new BigDecimal(price));
        }
    }
}

 

Kotlin中定義靜態變量和方法:

第一種方式:

companion object 修飾為伴生對象,伴生對象在類中只能存在一個,類似於java中的靜態方法 Java 中使用類訪問靜態成員,靜態方法。

class EUtils {
    companion object {
        // utils版本號
        var utilVersion = "1.0"

        /**
         * 顯示金額,負數為-¥0,非負數為¥0
         * @param tv     文本控件
         * @param price  金額
         */
        fun showPrice(tv: TextView, price: String): Unit {
            var result = BigDecimal(price).compareTo(BigDecimal.ZERO)
            if (result >= 0) {
                tv.setText("¥" + BigDecimal(price))
            } else {
                tv.setText("" + BigDecimal(price))
            }
        }
    }
}

第二種方式:

object 修飾的類為靜態類,里面的方法和變量都為靜態的。

object MUtils {
    // utils版本號
    var utilVersion = "1.0"
    /**
     * 顯示金額,負數為-¥0,非負數為¥0
     * @param tv     文本控件
     * @param price  金額
     */
    fun showPrice(tv: TextView, price: String): Unit {
        var result = BigDecimal(price).compareTo(BigDecimal.ZERO)
        if (result >= 0) {
            tv.setText("¥" + BigDecimal(price))
        } else {
            tv.setText("" + BigDecimal(price))
        }
    }
}

 

以上的調用方法都一樣,類名.變量 、類名.方法

        EUtils.utilVersion
        MUtils.utilVersion
        XUtils.utilVersion
        MUtils.showPrice(tvPrice,"111")
        EUtils.showPrice(tvPrice,"111")
        XUtils.showPirce(tvPrice,"111")

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM