黑马程序员技术交流社区
标题:
字段和参数名字不冲突吗
[打印本页]
作者:
黑马龙超
时间:
2012-6-7 11:55
标题:
字段和参数名字不冲突吗
本帖最后由 黑马龙超 于 2012-6-7 13:59 编辑
Class Person
{
public int age=10;
public void Function(int age)
{
this.age=age;
}
}
这里虽然可以用this.age区分参数age,但字段age为什么不和参数age作用域冲突?
作者:
王针
时间:
2012-6-7 12:09
Public void Function(int age)
{
this.age=age;
}
参数里面的int age相当于局部变量,只在下面{}内有效。而this.age则是指Person类的age
作者:
肖云
时间:
2012-6-7 12:11
请看下面的实例,这里的this表示当前实例,当前类;this.name表示当前类中的name字段,而单独的name表示参数name;这个不会冲突,因为在程序中有个"好莱坞原则",就类似"就近原则";
class Student
{
public Student(string name)
{
this.name = name;
}
string name;
public string Name
{
get { return name; }
}
}
作者:
朱亮辉
时间:
2012-6-7 13:28
不冲突,一个代表的是类的对象,一个代表的是参数,但是最好不要这要命名,容易产生混乱
作者:
刘豪
时间:
2012-6-7 14:59
this.name = name;
不冲突,this是指创建对象,如果少了this那就不行了,两个name都是函数作用域的局部变量了。
作者:
G_Xiaotao
时间:
2012-6-7 17:08
呵呵 我感觉是这样的 字段age是全局变量 参数age是仅限于方法内部 所以从内存来看他们都是存在的 this.age 指的是当前的类得实例!!呵呵
作者:
陌花╮有意、
时间:
2012-6-8 16:27
this是指当前引用的对象,而构造函数中变量是局部变量
不影响
作者:
钟山山
时间:
2012-6-8 18:34
this表示当前类,this.name表示当前类中的name字段,不影响。
作者:
ren1015
时间:
2012-6-8 19:22
this 可以代替当前类,this.age 是指类的成员变量,=age是形参
作者:
吴伟烈
时间:
2012-6-19 22:06
有this来区别,this代表这个字段是当前这个类的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2