Koltin简明学习,扩展方法和扩展属性
2017-06-20 16:52
134 查看
看标题就知道介绍两个东西,扩展函数和扩展属性。这个两个东西Java中没有,Kotlin拥有。两者对我们开发程序非常有帮助,让我们的代码更加简洁,更加易懂。
扩张方法很普通用法不同就是加了个类名。表示这个方法是那个类的方法。我们知道在Java语言中,要给一个类加个方法只能继承这个类。Kotlin能够很简单的给类价格方法。toast扩展方法表示这个方法类Context的,那么toast方法可以访问Context类的所有成员。
我们可以这样在一个Activtiy中使用这个扩张方法
比用Utils代码更简单。
上面是给ImageView添加一个扩展方法,这样我们加载图片就更加简单了,代码更加简洁。
上面是我们给一个View类添加一个属性cxt。其实这个属性就是View中的context成员变量。就是一个简写。
自定义属性要重新属性的getter和setter。上面代码中currentTextColor变量和setTextColor方法都是类TextView中的成员变量和成员方法。
Kotlin简明学习—文章列表
扩展方法
我们看下anko这个也是jetbrains开发的库中是怎么来写扩展方法/** * Display the simple Toast message with the [Toast.LENGTH_SHORT] duration. * * @param message the message text resource. */ fun Context.toast(message: Int) = Toast.makeText(this, message, Toast.LENGTH_SHORT).show()
扩张方法很普通用法不同就是加了个类名。表示这个方法是那个类的方法。我们知道在Java语言中,要给一个类加个方法只能继承这个类。Kotlin能够很简单的给类价格方法。toast扩展方法表示这个方法类Context的,那么toast方法可以访问Context类的所有成员。
我们可以这样在一个Activtiy中使用这个扩张方法
toast("hello world")
比用Utils代码更简单。
fun ImageView.loadImage(url: String) { Glide.with(context).load(url).into(this) }
上面是给ImageView添加一个扩展方法,这样我们加载图片就更加简单了,代码更加简洁。
扩展属性
我们知道一个类除了有方法,还有属性。Kotlin也可以在一个类中新添加一个属性。val View.ctx: Context get() = context
上面是我们给一个View类添加一个属性cxt。其实这个属性就是View中的context成员变量。就是一个简写。
var TextView.textColor: Int get() = currentTextColor set(v) = setTextColor(v)
自定义属性要重新属性的getter和setter。上面代码中currentTextColor变量和setTextColor方法都是类TextView中的成员变量和成员方法。
Kotlin简明学习—文章列表
相关文章推荐
- [读书笔记]C#学习笔记五: C#3.0自动属性,匿名属性及扩展方法
- [读书笔记]C#学习笔记五: C#3.0自动属性,匿名属性及扩展方法
- C#可扩展编程之MEF学习笔记(三):导出类的方法和属性
- C#学习笔记四: C#3.0自动属性&匿名属性及扩展方法
- [读书笔记]C#学习笔记五: C#3.0自动属性,匿名属性及扩展方法
- C#3.0 之 自动属性 对象初始化器,集合初始器,扩展方法
- c#3.0新特性(一):var关键字、自动属性、初始化器和扩展方法
- C#3.0学习(1)---隐含类型局部变量和扩展方法
- C#3.0学习(1)---隐含类型局部变量和扩展方法
- 步步为营VS 2008 + .NET 3.5(3) - C# 3.0新特性之Automatic Properties(自动属性)、Object Initializers(对象初始化器)、Collection Initializers(集合初始化器)和Extension Methods(扩展方法)
- 《ASP.NET MVC验证框架中关于属性标记的通用扩展方法》之继续扩展
- Emit学习-基础篇-为动态类添加属性、构造函数、方法
- AJAX 学习笔记(5) 处理XML文档的DOM元素属性和遍历DOM元素方法
- QuickSkin简单学习--属性和方法
- 扩展方法学习笔记(一)
- 扩展方法学习笔记(二)
- LINQ学习笔记之二:扩展方法与隐藏类型
- C#2005 .NET3.0高级编程学习笔记————类和结构,类的数据成员,类的函数成员(方法、属性)
- SilverLight学习(2):两种方法设置图形元素的RenderTransform属性
- Python学习笔记五(面向对象-类-方法-属性)