public Student(String name, int id)
{
name = name;
id = id;
}
这里的name都是局部变量,所以你不写为this.XXX = XXX,那么类里面的XXX永远赋不了值。
假如你
public Student(String name1, int id1)
{
name = name1;
id = id1;
}
把局部的变量名命名为和外部的不一样,那或许可以。
我想这里就是作用域的问题了。
{
name = name;
id = id;
}
这里的name都是局部变量,所以你不写为this.XXX = XXX,那么类里面的XXX永远赋不了值。
假如你
public Student(String name1, int id1)
{
name = name1;
id = id1;
}
把局部的变量名命名为和外部的不一样,那或许可以。
我想这里就是作用域的问题了。
解决方案 »
- 求助:怎么把工具栏按钮在界面左边竖直排列?
- Microsoft SQL Server 2005 JDBC Driver 版本问题
- java中将String转成Date?
- 怎么把从数据中查询的数据,生成一个树状结构??请问怎么做啊??有源码最好!急啊
- 急急急!!!!!Crystal Reports 中的图表不能显示中文字在unix平台上,大家有遇到这个问题吗
- 我该拿什么项目来开刀了
- Applet小程序查看器怎样用呀???
- Java里对文件操作,求助!
- 求助:Frame中加入JTable为何显示有问题
- eclipse和netbeans都开源,它们各自有什么优缺点?
- 请问在哪下载 java jdk1.4.2 linux下的编辑器 能把网址告诉我吗
- 急需用信号量解决“生产者消费者”问题,请高手指点,最好给出源码,谢谢。(分不够可以再加)
{
name = name;
id = id;
}
这个表示 从外部传递进来的name 赋值给 外部传递进来的name 即没有赋值给内部本身的namepublic Student(String name, int id)
{
this.name = name;
this.id = id;
}
这个表示 从外部传递进来的name 赋值给内部的name
{
name = name;
id = id;
}
如果不用this.name或this.id,程序会以为这个name和id是函数的参数,因为名字一样。
如果你换成成员变量名应该就可以不用this的!
{
name = name;
id = id;
}
函数体中的两个name都指代函数参数中的name,而非类对象中的name,故不能对对象中的name赋值;
改为
public Student(String name, int id)
{
this.name = name;
this.id = id;
}
后,由this指明了前一个name是对象中的域,从而获得赋值
{
this.name = name;
this.id = id;
}
和private String name;
private int id;相同的名字,不能识别
哪个是对象的哪个是方法的,
在方法中两个name都是指的
方法中的参数,所以出现了
不能够负值的现象,所以如果方法中的
变量与对象中的变量相同时,一定要将对象中
的变量加上this,这样就不会有二义性性了。
public Student(String name, int id)
{
this.name = name;
this.id = id;
}
构造函数中的参数跟定义的成员变量重名了,在函数体中不知赋给谁,所以必须加个this来区分成员变量.不加this就得把参数换个名字.
{
name = name;
id = id;
}-----------------------------------------------------
这是在给局部变量name赋值
相当于String name="你传入的值";
name=name;
在函里用变量名引用的是局部变量,
在这里,想把 class student的属性name赋值,
所以可以用this(每个class里面指向本身的引用)来引用name,以便给它赋值..如果不用this,相当于把变量本身的值赋给自己,就好像这样:int i=0;i=i; 一点用都没有.