构造函数用Java调用

时间:2014-01-08 22:08:48

标签: java static

在这里:

enter image description here

输出应该是9,为什么是10?

有人可以一步一步解释我吗?

4 个答案:

答案 0 :(得分:5)

while为10(9仍小于10)时,count循环退出。

然后是println count,其值为10.

最后你增加它的值,在打印之后它是11。

答案 1 :(得分:2)

这部分:

Pangool(){
    while(count < 10)
        new Pangool(++count)
}

count从0增加到10。

然后在这里:

public static void main (String[] args){
    new Pangool();
    new Pangool("Pangool");
    System.out.println(count++);
}

它会打印当前值count然后增量count。这一行:

System.out.println(count++);

相当于:

System.out.println(count);
count = count + 1;

If you write out the code and add a few print statements, you can see the flow of the value

before:  0
after:  1
before:  1
after:  2
before:  2
after:  3
before:  3
after:  4
before:  4
after:  5
before:  5
after:  6
before:  6
after:  7
before:  7
after:  8
before:  8
after:  9
before:  9
after:  10
10
10
11

答案 2 :(得分:2)

Lemme引导您完成它:

首先调用启动循环的new Pangool()

计数初始化为0

我们现在调用Pangool(++count),它将count增加到1并传递值1(count ++将传递0并在之后将其更改为1)。 数量为1。

这会调用不执行任何操作的Pangool(int)构造函数

循环继续增加值,直到 count为9 ,在此循环中,我们现在调用Pangool(++count),将计数增加到10 。< / p>

现在我们已完成Pangool()并且计数为10

现在我们调用Pangool("Pangool")调用字符串构造函数,它不计算任何数,仍为10。

现在我们致电System.out.println(count++),此打印数量为10,然后将计数更改为11

System.out.println(count)将在11之后打印。

在此处查看预修复和后期修复操作符:

Java: Prefix/postfix of increment/decrement operators?

答案 3 :(得分:0)

这是因为你开始计数为0并且停在9,9包括在内。 您的计数从0开始,增加1,大约10次。 如果您按数字计算数字,0 1 2 3 4 5 6 7 8 9,您可以看到有10个数字。