|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
陪伴对象也可以加个名字,例如:- fun main(args: Array<String>) {
- O.Orientation.left()
- O.left()
- }
- class O{
- companion object Orientation{
- fun left(){
- println("Take a left")
- }
- }
- }
复制代码
使用两种方式调用都可以,输出结果为:
陪伴对象还可以有扩展方法:
- fun main(args: Array<String>) {
- fun O.Orientation.right(){
- println("Take a right")
- }
- O.right()
- }
- class O{
- companion object Orientation{
- fun left(){
- println("Take a left")
- }
- }
- }
复制代码
就是在外面自己定义一个方法,在普通函数跟类的普通方法也可以这么做,我就不举例了。输出结果为:
下面介绍下不创建类直接创建对象的方法:
- fun main(args: Array<String>) {
- A.a()
- }
- object A{
- fun a(){
- print("我只是个对象")
- }
- }
复制代码
这也称作单例,创建了直接使用就可以了,非常方便,输出结果为:
还有一种类的形式叫数据类:
- fun main(args: Array<String>) {
- var o=Orientation("left","right","front","behind")
- print(o)
- }
- data class Orientation(val left:String,val right:String,val front:String,val behind:String)
复制代码
其实就是专门存储临时数据用的,有点像javabean,输出结果:
Orientation(left=left, right=right, front=front, behind=behind)
还有一种叫枚举类:
- fun main(args: Array<String>) {
- var o= Orientation.LEFT
- when(o){
- Orientation.LEFT-> print("我在左边")
- Orientation.RIGHT-> print("我在右边")
- Orientation.FRONT-> print("我在前边")
- Orientation.BEHIND-> print("我在后边")
- }
- }
- enum class Orientation{
- LEFT,RIGHT,FRONT,BEHIND
- }
复制代码
有了这种简便的方法,你就可以通过改变o的值来制作流程,输出结果为:
还有一种内部类的写法:
- fun main(args: Array<String>) {
- val a=Outer().Inner().getA()
- print(a)
- }
- class Outer{
- val a=1
- inner class Inner{
- fun getA():Int{
- return a
- }
- }
- }
复制代码
使用内部类可以直接访问外部类的属性,输出结果为:
|
|