浅谈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")
作者:听着music睡
出处:http://www.cnblogs.com/xqxacm/
Android交流群:38197636
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。