黑马程序员技术交流社区
标题: 关于成员变量和局部变量的用法 [打印本页]
作者: SpiderManZZH 时间: 2014-11-21 10:06
标题: 关于成员变量和局部变量的用法
先看例子:
//对Car这类事物进行描述
class Car
{
//成员变量
String color = "red";
int num = 4;
//成员方法
void show()
{
//临时变量
int num = 10;
//输出临时变量的值
System. out.println("color = " +color +"...num = " +num);
}
}
如上所诉,通过实例化对象调用show()方法,打印的num是局部变量的值等于10,如果要打印成员变量代码可改为this.num
问题::当成员变量和局部变量同名时,如果输出打印的是num不是this.num,为什么会默认是局部变量的值,而不是成员变量的值?
作者: 奋斗的蜗牛ksd 时间: 2014-11-21 10:09
this.num的 this指的是对象,你这对象都没初始化呢,怎么可能调用 成员变量4.在show函数内, 局部变量num覆盖了成员变量,而color是类初始化就有的,所以是red。如果去掉局部变量num 就会输出成员变量num了!
作者: 依米阳光 时间: 2014-11-21 10:17
show() 方法执行时说明该类的对象已经创建了···
作者: 依米阳光 时间: 2014-11-21 10:19
就近原则,局部变量比成员变量的优先级高。如果签名相同则在使用局部变量时会覆盖成员变量值。应该是这样的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |