gpt4 book ai didi

java - 静态变量和非静态变量可以同名

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:12:11 26 4
gpt4 key购买 nike

我有一个类,因为我需要两个变量,一个是静态变量,另一个是非静态变量。我的问题是当我们声明两个变量时,我们可以用相同的名称声明它们吗?

为什么我问这个问题是静态变量和非静态变量存储在两个不同的区域(静态变量在方法区和非静态(实例)变量在堆区)。那么,如果我用相同的名称声明它们会怎样?如果错了,原因是什么?

最佳答案

不,您不能执行以下操作:

public class X{
int a;
static int a = 10; //Illegal
public X(int a){
this.a = a;
}
}

原因是两个 a 都在 x 实例的范围内。对于:

X x = new X(5); 
x.a; //were the static field with name a legal, this refers to both 5 and 10.

尚不清楚引用的是哪个版本的a。因此,为了防止混淆,这是非法的。

关于java - 静态变量和非静态变量可以同名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26222844/

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