关于成员变量和局部变量的使用问题

1.局部变量和成员变量能不能重名?
答案:能
2.局部变量和成员变量声明时必须初始化吗?
答案:不是
解析:使用成员变量时可以不初始化,在进行类加载的时候jvm会自动给它赋默认值
局部变量声明时可以不初始化,但是当使用它时,必须显式地手动给他赋值,否则编译报错
3.若声明了重名的成员变量和局部变量,使用的时候具体使用的是哪个?
答案:就近原则,使用距离使用者最近的那个变量
代码测试:

public class VariableTest {
	String s;//成员变量
	public static void main(String[] args) {
		String s;//局部变量
		//以下代码报错,说明当局部变量和成员变量重名时,有一个就近原则(使用的是离它最近的那个变量)
		//同时说明局部变量声明时可以不初始化,但是当使用它时,必须显式地手动给他赋值
		//System.out.println(s);
		VariableTest v = new VariableTest();
		v.test();
	}
	public void test() {
		//使用成员变量时可以不初始化,在进行类加载的时候jvm会自动给它赋默认值
		System.out.println(s);//结果打印输出null,说明成员变量没有给它赋值,进行类加载的时候jvm会自动给它赋默认值
	}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值