【发布时间】:2018-02-06 09:07:45
【问题描述】:
当我尝试在同一个项目的 practice1.kt 和 practice2.kt 文件中创建私有 Person 类时,出现重新声明错误。例如:
Practice1.kt
private class Person constructor(var name: String, var age: Int){
var profession: String = "Not mentioned"
init{
println("$name's details are being held in this class object.")
}
constructor(name:String,age:Int, profession: String): this(name,age){
this.profession = profession
}
fun printPersonDetails(){
println("$name whose profession is $profession, is $age years old.")
}}
fun main(args: Array<String>){
val smith = Person("Smith",20)
smith.printPersonDetails()}
Practice2.kt
private class Person(val name:String, age:Int){
var age: Int = age
set(new_data){
println("Setting age to $new_data")
field = new_data
}}
在 Practice1.kt 的主函数中创建 smith Person 对象 时出现错误: 无法访问“Person”:它在文件中是私有的。
我认为私有类仅在包含文件中可见。为什么一个文件(practice1.kt)中的私有类会干扰另一个文件(practice2.kt)的私有类?
【问题讨论】:
标签: kotlin