как инициализировать переменные-члены из основного конструктора - PullRequest
0 голосов
/ 05 июля 2019

Я новичок в разработке Kotlin. Я пытался создать простой пример, чтобы знать первичные и вторичные конструкторы, поэтому я сослался на ссылку ниже. однако созданный ниже класс, похоже, содержит ошибку, несмотря на то, что я скопировал с эту ссылку

пожалуйста, дайте мне знать, как я могу изменить класс, указанный ниже, чтобы у меня мог быть запущен код.

MainActivity

class MainActivity : AppCompatActivity() {

val LOG_TAG : String = "MainActivity"

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    var p1 = CustomPerson("Ar", "Agi", 25632909)
    //nonScopingFunc1(p1)

    Log.d(LOG_TAG, "p1: " + p1.address)

}

/*private func nonScopingFunc1 (p:CustomPerson) : CustomPerson {
    var person : Person = getPersonName(p)
    var person : Person = getPersonAddress(p)
    var person : Person = getPersonPhone(p)
}*/
}

customClass

 class CustomPerson (_name: String, _address: String, _phoneNum: Long) {

var name: String
var address: String
var phoneNum: Long

 init {
     println("Initialized a new Person object with name = $name , address = $address and phoneNum = $phoneNum")
 }
}

Ответы [ 2 ]

1 голос
/ 05 июля 2019

Я думаю, вам не хватает нескольких строк для копирования по ссылке:

class Person(_name: String, _age: Int, _salary: Int) {
    // Member Variables (Properties) of the class
    var name: String
    var age: Int 
    var salary: Int 

    // Initializer Block
    init {
        this.name = _name
        this.age = _age 
        this.salary = _salary 
       println("Initialized a new Person object with Name = $name , age = $age and salary = $salary")
    }
}
0 голосов
/ 05 июля 2019

не нужна теневая переменная

 class CustomPerson (private val name: String,private val address: String, private val phoneNum: Long) {

 init {
       println("Initialized a new Person object with name = $name , address = 
       $address and phoneNum = $phoneNum")
  }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...