LoginSignup
0
0

More than 1 year has passed since last update.

kotlin勉強: classとproperty

Last updated at Posted at 2022-05-26

遭遇

class Person(name: String) {
    fun program() = println("$name program")
}

Unresolved reference: nameというエラーが出た

property

constructorの中でvarvalで定義しないとclassのpropertyにならないのは原因です!なるほど!

class Person(val name: String) {
    fun program() = println("$name program")
}

fun main() {
    val person = Person("Arthur")
    person.program()
}

確認

package com.example.webviewtest.learn

import kotlin.reflect.full.memberProperties

class Person(name: String) {
//    fun program() = println("Person: $name program")
}

class Person2(val name: String) {
    fun program() = println("Person2: $name program")
}

fun main() {
    val person = Person("Arthur")
    val person2 = Person2("Arthur")
    println(person::class.memberProperties)
    println(person2::class.memberProperties)
}

結果↓確かにPersonはpropertyが持ってないことになってます

[]
[val com.example.webviewtest.learn.Person2.name: kotlin.String]

valとvarを使わない場合は

クラスの中でpropertyを定義しないといけない

class Person2(name: String) {
    var name: String = name

    fun work() = println("$name program")
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0