关于变量命名重复问题

关于变量命名重复问题

public class CarDemo {
	static String firm;
	String color;
	int price;

	public CarDemo(String color, int price) {
		this.color = color;
		this.price = price;
	}

	public void display() {
		int price=100000;     // 
		{
			int price=200000;
		}
	}
}

在方法display中,定义了一个price,它和属性一样,为什么没有冲突呢?属性中的price应该在整个类的范围内都有效吧?在display中应该也是有效的,此处可以,为什么在普通代码块中再次定义就不可以呢?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,因为第一个price是全局变量 ,第二个price是局部变量,并且第二个price的作用范围就是display()整个方法中。局部变量可以和全局变量重名,所以没有冲突;但是第三个price也是局部变量,并且在display0方法中,所以和第2个price冲突报错


http://img1.sycdn.imooc.com//climg/5ec5fe42080d814305540281.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!


  • mahsiaoko 提问者 #1
    好的,局部变量和局部变量不可以重名,局部和全局变量可以重名对吧?
    2020-05-21 12:13:36
  • 好帮手慕阿园 回复 提问者 mahsiaoko #2
    同学你好,是的;不过局部变量是在同一个作用范围内不可以重名,比如上面代码,第二个price的作用范围就是display()整个方法中。
    2020-05-21 17:27:21
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师