kotlin 학습 노트 Ⅱ—— 클래스와 객체
2356 단어 kotlin
수업
Kotlin의 클래스는 class 키워드를 사용하여 선언됩니다.
class Runoob { // class name is Runoob
// .......
}
생성자를 사용하여 일반 함수처럼 클래스 인스턴스를 생성할 수 있습니다.
val site = Runoob() // in Kotlin ,there don't have new keyword
게터 & 세터
다음 예제에서는 두 개의 변수 변수 lastName과 no를 사용하여 사람 클래스를 정의합니다. lastName은 getter 메서드를 수정하고 no는 setter 메서드를 수정합니다.
class Person {
var lastName: String = "zhang"
get() = field.toUpperCase() // Convert variable to uppercase
set
var no: Int = 100
get() = field
set(value) {
if (value < 10) {
field = value
} else {
field = -1
}
}
var heiht: Float = 145.4f
private set
}
// test
fun main(args: Array<String>) {
var person: Person = Person()
person.lastName = "wang"
println("lastName:${person.lastName}") // output:lastName: Wang
person.no = 9
println("no:${person.no}") // output:no: 9
person.no = 20
println("no:${person.no}") // // output:no: -1
}
추상 클래스
추상 멤버는 클래스에 구현이 없습니다.
참고: 개방형 주석으로 추상 클래스나 멤버에 주석을 달 필요가 없습니다.
open class Base {
open fun f() {}
}
abstract class Derived : Base() {
override abstract fun f()
}
내부 클래스
내부 클래스는 inner 키워드로 표시됩니다.
내부 클래스는 외부 클래스의 객체에 대한 참조를 가지므로 내부 클래스는 외부 클래스 멤버 속성 및 멤버 함수에 액세스할 수 있습니다.
class Outer {
private val bar: Int = 1
var v = "member property"
/**inner class**/
inner class Inner {
fun foo() = bar // outer class number
fun innerTest() {
var o = this@Outer
println("inner class can use outer class number,eg:" + o.v)
}
}
}
fun main(args: Array<String>) {
val demo = Outer().Inner().foo()
println(demo) // 1
val demo2 = Outer().Inner().innerTest()
println(demo2) //inner class can use outer class number,eg:member property
}
Reference
이 문제에 관하여(kotlin 학습 노트 Ⅱ—— 클래스와 객체), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/yuyalei/kotlin-learning-notes-class-and-object-4140
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
class Runoob { // class name is Runoob
// .......
}
val site = Runoob() // in Kotlin ,there don't have new keyword
다음 예제에서는 두 개의 변수 변수 lastName과 no를 사용하여 사람 클래스를 정의합니다. lastName은 getter 메서드를 수정하고 no는 setter 메서드를 수정합니다.
class Person {
var lastName: String = "zhang"
get() = field.toUpperCase() // Convert variable to uppercase
set
var no: Int = 100
get() = field
set(value) {
if (value < 10) {
field = value
} else {
field = -1
}
}
var heiht: Float = 145.4f
private set
}
// test
fun main(args: Array<String>) {
var person: Person = Person()
person.lastName = "wang"
println("lastName:${person.lastName}") // output:lastName: Wang
person.no = 9
println("no:${person.no}") // output:no: 9
person.no = 20
println("no:${person.no}") // // output:no: -1
}
추상 클래스
추상 멤버는 클래스에 구현이 없습니다.
참고: 개방형 주석으로 추상 클래스나 멤버에 주석을 달 필요가 없습니다.
open class Base {
open fun f() {}
}
abstract class Derived : Base() {
override abstract fun f()
}
내부 클래스
내부 클래스는 inner 키워드로 표시됩니다.
내부 클래스는 외부 클래스의 객체에 대한 참조를 가지므로 내부 클래스는 외부 클래스 멤버 속성 및 멤버 함수에 액세스할 수 있습니다.
class Outer {
private val bar: Int = 1
var v = "member property"
/**inner class**/
inner class Inner {
fun foo() = bar // outer class number
fun innerTest() {
var o = this@Outer
println("inner class can use outer class number,eg:" + o.v)
}
}
}
fun main(args: Array<String>) {
val demo = Outer().Inner().foo()
println(demo) // 1
val demo2 = Outer().Inner().innerTest()
println(demo2) //inner class can use outer class number,eg:member property
}
Reference
이 문제에 관하여(kotlin 학습 노트 Ⅱ—— 클래스와 객체), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/yuyalei/kotlin-learning-notes-class-and-object-4140
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
open class Base {
open fun f() {}
}
abstract class Derived : Base() {
override abstract fun f()
}
내부 클래스는 inner 키워드로 표시됩니다.
내부 클래스는 외부 클래스의 객체에 대한 참조를 가지므로 내부 클래스는 외부 클래스 멤버 속성 및 멤버 함수에 액세스할 수 있습니다.
class Outer {
private val bar: Int = 1
var v = "member property"
/**inner class**/
inner class Inner {
fun foo() = bar // outer class number
fun innerTest() {
var o = this@Outer
println("inner class can use outer class number,eg:" + o.v)
}
}
}
fun main(args: Array<String>) {
val demo = Outer().Inner().foo()
println(demo) // 1
val demo2 = Outer().Inner().innerTest()
println(demo2) //inner class can use outer class number,eg:member property
}
Reference
이 문제에 관하여(kotlin 학습 노트 Ⅱ—— 클래스와 객체), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/yuyalei/kotlin-learning-notes-class-and-object-4140텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)