Kotlin 第二讲

布局文件声明id之后,在Activity中不需要进行findviewbyid的操作,不需要声明控件,直接可以使用。不过需要在activity中import一下(android studio 一般会自动引入)。如

<TextViewandroid:id="@+id/message"android:text="@string/hello_world"android:layout_width="wrap_content"android:layout_height="wrap_content"/>

在activity中直接可以使用message.text = "hello kotlin",这个时候android studio 一般会引入import语句,如果没有,需要手动引入:

import kotlinx.android.synthetic.main.activity_main.*

可以看到设置文字都不需要set这些方法,编译器自动转换为java代码。

类的定义

class MainActivity{ },它有一个默认唯一的构造器,但是请记住大部分情况下你只需要这个默认的构造器。你只需要在类名后面写上它的参数。如果这个类没有任何内容可以省略大括号:class Person(name: String, surname: String),那么构造函数的函数体在哪呢?你可以写在 init 块中:

class Person(name: String, surname: String) {
init{
...
}
}

类继承

默认任何类都是基础继承自 Any (与java中的 Object 类似,但是两者完全不同,尤其是,它除了 equals() 、 hashCode() 和 toString() 外没
有任何成员。),但是我们可以继承其它类。所有的类默认都是不可继承的(final),所以我们只能继承那些明确声明 open

或者 abstract 的类:
open class Animal(name: String)
class Person(name: String, surname: String) : Animal(name)

创建类的实例

Kotlin中没有New这个关键字,那么如何创建一个实例呢?很多简单,只需要像普通函数一样,调用构造函数即可。

val invoice = Invoice()
val customer = Customer("Joe Smith")
这样,就创建了实例。

属性和字段:

Kotlin的类可以有属性。 属性可以用关键字 var 声明为可变的,否则使用只读关键字 val 。

接口

接口的还是用interface关键词来定义。

interface MyInterface {
fun bar()
fun foo() {
// 可选的方法体
}
一个类或者对象可以实现一个或多个接口。
class Child : MyInterface {
override fun bar() {
// 方法体
}

泛型

class Box<T>(t: T) {
    var value = t
}																//实例的创建val box: Box<Int> = Box<Int>(1);

嵌套类和内部类

嵌套类:
class Outer {
private val bar: Int = 1
class Nested {
fun foo() = 2
}}
val demo = Outer.Nested().foo() // == 2
内部类:
class Outer {
private val bar: Int = 1
inner class Inner {
fun foo() = bar
}}
val demo = Outer().Inner().foo() // == 1
可以看到,内部类用了一个inner关键字,使用方式也有点不同,内部类持有一个外部类对象的引用。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值