Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何计算在Kotlin中创建的对象数?_Kotlin - Fatal编程技术网

如何计算在Kotlin中创建的对象数?

如何计算在Kotlin中创建的对象数?,kotlin,Kotlin,在下面的代码片段中,我创建了4个CompanyClass实例,并想知道有多少个 我已经创建了实例,所以尝试了很多方法,但都不起作用。这里我使用了companion对象类 跟踪对象,但我知道它与对象没有联系,因为keepTrackOfObjects()是 静止的有人能帮我解决这个问题吗 class CompanionClass { companion object{ var numberOfObjects = 0 fun keepTrackOf

在下面的代码片段中,我创建了4个CompanyClass实例,并想知道有多少个 我已经创建了实例,所以尝试了很多方法,但都不起作用。这里我使用了companion对象类 跟踪对象,但我知道它与对象没有联系,因为keepTrackOfObjects()是 静止的有人能帮我解决这个问题吗

class CompanionClass
{
     
    companion object{
        var numberOfObjects = 0 
        fun keepTrackOfObjects() = println("number of created objects currently is: +
             ${++numberOfObjects}")
    }
}

fun main()
{
 
    val obj1 = CompanionClass()
    CompanionClass.keepTrackOfObjects()
    val obj2 = CompanionClass()`enter code here`
    val obj3 = CompanionClass()
    val obj4 = CompanionClass()
    CompanionClass.keepTrackOfObjects()
}

// output is
// 1
// 2

您可以使用
init
块对创建的元素进行计数:

class公司class{
伴星{
变量计数器:Int=0
有趣的计数器():Int{
返回计数器
}
}
初始化{
柜台++
}
}

您可以在此中测试行为。

您可以使用
init
块来计算您创建的元素:

class公司class{
伴星{
变量计数器:Int=0
有趣的计数器():Int{
返回计数器
}
}
初始化{
柜台++
}
}

您可以在此测试行为。

问题在于您的同伴对象

var numberOfObjects = 0 
将在每次创建新实例时初始化变量。因此,在一个单独的类中创建这个变量,在这个类中保存所有静态内容并从那里使用它。那么你的伴星就会是这样

    companion object{
        fun keepTrackOfObjects() = println("number of created objects currently is: +
             ${++numberOfObjects}")
    }

问题在于你的同伴对象

var numberOfObjects = 0 
将在每次创建新实例时初始化变量。因此,在一个单独的类中创建这个变量,在这个类中保存所有静态内容并从那里使用它。那么你的伴星就会是这样

    companion object{
        fun keepTrackOfObjects() = println("number of created objects currently is: +
             ${++numberOfObjects}")
    }

创建一个对象列表,然后计算它们并不难()你在代码中的numberOfObjects++做什么?@Luuk我不需要创建对象列表。假设我需要一两个对象,并且想知道我已经创建了多少类对象。没有列表,您能帮助我吗?@hfarhanahmed在companion对象类中。问题是每次创建新实例时,companion对象{var numberOfObjects=0}都会运行。这个计数器应该在另一个类中,以保留以前的值。创建一个对象列表,然后对它们进行计数并不困难()您在代码中的numberOfObjects++是在哪里执行的?@Luuk我不需要创建对象列表。假设我需要一两个对象,并且想知道我已经创建了多少类对象。没有列表,您能帮助我吗?@hfarhanahmed在companion对象类中。问题是每次创建新实例时,companion对象{var numberOfObjects=0}都会运行。此计数器应位于另一个类中以保留以前的值。我尝试了您的代码段并创建了几个CompanyClass对象。当我打印CompanionClass.counter()时,它将0作为输出,而obj.counter()也是如此。我尝试了您的代码片段,并创建了几个CompanionClass对象。当我打印CompanionClass.counter()时,它将0作为输出,对于obj.counter()也是如此。