java作用域

解释Java中作用域的概念,详细说明如何正确定义局部变量,避免常见错误,并强调使用{}

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java作用域以{}来鉴定 java中不能嵌套定义变量如:

public class Hello
{
public static void main(String[] args)
{
String s = new String("a");
if(true)
{
String s = new String("b");
}
System.out.println(s);
}
}

这样是错误的 提示已经在main里定义过了

在第一个{}里已经定义了s所以他的作用域在第2个{}也可用的 但是如果第二个定义了s外部不能使用的因为作用域有效范围是在他的{开始定义出到--}处 如:

public class Hello
{
public static void main(String[] args)
{
if(true)
{
String s = new String("a");
}
System.out.println(s);
}
}

这样是错误的提示找不到符号s


特别注意

public class Hello
{
public static void main(String[] args)
{
if(true)
String s = new String("a");
}
}


public class Hello
{
public static void main(String[] args)
{
if(true)
int a = 2;
}
}


没加{} 编译时候会提示不是语句错误
因为局部变量声明不算语句 如果加上{}成了语句块block就对了.

可以这么理解 从实际出发的,在if(true)后,只做定义一个变量(赋值)的操作,这个变量以后也不能用,这么定义变量没有意义。所以,就直接抛一个compile error。而加上{}后可能以后会在{}里使用他 所以不会提示出错.
所以我们在写if 等即时后面是单语句也都记得加{}.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值