Kotlin for Android Developers


Download 1.04 Mb.
Pdf ko'rish
bet76/79
Sana18.06.2023
Hajmi1.04 Mb.
#1588404
1   ...   71   72   73   74   75   76   77   78   79
Bog'liq
Kotlin for Android Developers Learn Kotlin the Easy Way While Developing an Android App ( PDFDrive )


2
#ff212121
3
@android:color/black
4
28 Extra concepts
Through this book, we’ve talked about most important concepts of Kotlin language. But we didn’t
use some of them when implementing the App, and I wouldn’t want to let them out of these pages.
In this chapter, I will review some unrelated features that you could need when you develop your
next Android App using Kotlin.
28.1 Nested classes
As in Java, we can define classes inside other classes. If it’s a regular class, it won’t we able to access
the members of the out class (it would work as an static class in Java):
1
class Outer {
2
private val bar: Int = 1
3
class Nested {
4
fun foo() = 2
5
}
6
}
7
8
val demo = Outer.Nested().foo() // == 2
If we want to access to the members of the outer class, we need to declare it as an
inner
class:
1
class Outer {
2
private val bar: Int = 1
3
inner class Inner {
4
fun foo() = bar
5
}
6
}
7
8
val demo = Outer().Inner().foo() // == 1
28.2 Enum classes
Kotlin also provides a way to implement
enum
s:
140


28 Extra concepts
141
1
enum class Day {
2
SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
3
THURSDAY, FRIDAY, SATURDAY
4
}
Enums can have parameters:
1
enum class Icon(val res: Int) {
2
UP(R.drawable.ic_up),
3
SEARCH(R.drawable.ic_search),
4
CAST(R.drawable.ic_cast)
5
}
6
7
val searchIconRes = Icon.SEARCH.res
Enums can be requested by the
String
that matches a name, and we can also get an
Array
which
includes all the values of an enum, so that we can iterate over them.
1
val search: Icon = Icon.valueOf("SEARCH")
2
val iconList: Array = Icon.values
Besides, every Enum constant has functions to obtain its name and the position in the declaration:
1
val searchName: String = Icon.SEARCH.name
2
val searchPosition: Int = Icon.SEARCH.ordinal
Enums implement
Comparable
based on the constants ordinal, so it’s easy to compare them.

Download 1.04 Mb.

Do'stlaringiz bilan baham:
1   ...   71   72   73   74   75   76   77   78   79




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling