如何从主要构造函数中启动成员变量



我是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")
 }
}

我想您错过了一些从链接复制的行:

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")
    }
}

不需要暗影变量

 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")
  }
 }

最新更新