gpt4 book ai didi

Java 语法 : Why does this variable declaration work?

转载 作者:行者123 更新时间:2023-11-29 10:13:54 30 4
gpt4 key购买 nike

这里发生了什么?这对我来说似乎很奇怪。

public int v0, v1 = v0++, v2;

最佳答案

它声明了所有三个实例成员(我知道它们是实例成员,因为您没有得到错误),就好像它们是单独声明的一样,并将其中一个显式初始化为 v0++< 的值,这是 v0 在递增之前的值:

public int v0;
public int v1 = v0++;
public int v2;

你也可以这样想:

public int v0;
public int v1;
public int v2;

// (In a constructor)
v1 = v0++;

哪个有效:

public int v0 = 0;
public int v1 = 0;
public int v2 = 0;

// (In a constructor)
v1 = v0++;

创建实例后,变量将具有这些值:

v0: 1    Because it was incrementedv1: 0    Because it received the value of `v0` *prior* to the incrementv2: 0    Because that's the default value for `int` instance members

我说“实例成员”是因为如果这些是方法中的变量而不是类的实例成员,您会得到一个错误,提示您在初始化之前使用了 v0(编辑:呃,嗯,然后是那个public 东西 -- doh!)

关于Java 语法 : Why does this variable declaration work?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23952139/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com