经常看到一些程序里会出现如这样的语句
如:this.costs=costs;
问:两个costs的区别?
请这方面学的好的高手们给出点通俗易懂的解释啊……
感谢ING……
如:this.costs=costs;
问:两个costs的区别?
请这方面学的好的高手们给出点通俗易懂的解释啊……
感谢ING……
解决方案 »
- 初学者请教大侠们一个小程序。
- 统计任意一字符串中的每个字符出现次数,内容中包含有中文且只能使用一次循环.
- 我想问的是,既然java线程中已经有了sleep方法,为什么
- 命名内部类如何获取文本框中更改的文字
- int和String类型怎么实行转化?
- 大哥大姐们帮偶个忙。。。。新手送分了。谢谢简单的问题啊
- reset()方法到底是什么意思??
- 6 ^ 3 是什么意思?
- 请问,MultipartRequest怎么用啊!
- 求救!!!怎样在java中读二进制流式文件(用c语言写的)???
- 关于ArrayList的问题
- public static native Thread currentThread(){} 这个方法听说是C/C++编的,是吧?
private int day;
private int month;
private int year; //定义三个成员变量; public MyDate(int day,int month,int year){
this.day=day; //date,month,year都是传入的参数,而this.date是指在调用构造方法时对本类的对象的属性初始化
//this.i 就代表了当前类(Test)的属性i
this.month=month; this.year=year;
} //构造方法; public MyDate(MyDate date){
this.day=date.day;
this.month=date.month;
this.year=date.year; //将参数Date类中的成员变量赋给MyDate类,这里可能更好理解一点,这里就看清楚了,参数是MyDate类型的date对象了
}
}
这段代码有助于楼主理解
this.day=day; //date,month,year都是传入的参数,而this.date是指在调用构造方法时对本类的对象的属性初始化
//this.i 就代表了当前类(Test)的属性i
this.month=month; this.year=year;
} //构造方法;
其中this.day=day中的第一个day指的哪个?是public MyDate(int day,int month,int year)中的day吗?
而后面的costs表示外面传进来的参数
所以this.costs=costs表示外面传进的变量costs的值赋给当前这个类中的costs
第二个day是你传入的参数public MyDate(int day,int month,int year)中的day
public class Test{
private int costs;
public void setCosts(int consts){
this.costs = costs;
}
}一般是上面的这样
其实就等同于public class Test{
private int costs;
public void setCosts(int constsParam){
this.costs = constsParam;
}
}这样你就可以清楚的看出来2个consts的区别了
其实this.costs这个costs是类的属性
等号后面的costs是方法接收的参数this表示当前实例
你把传入的参数day换成d,就不用this.day了,直接day=d;没问题,因为名字唯一,那么day就是类的属性,d是方法的参数变量
但是为了变量的见名知意,所以他把参数也写成day,那你就必须得用什么方法来区分同名的属性和参数,所以必须用this.day代表属性,否则day=day;没有意义都是参数
我也有一个this用法的疑问:
类继承了一个事件,在添加事件监视器时遇到
addActionlistener(this);
this指的是当前类吗?
this.day是指类的属性day,第二个day是指传来的参数
public class Test{
private int costs;
public void setCosts(int consts){
this.costs = costs;
}
}
这里的 public void setCosts(int consts)这句中应该改为
public void setCosts(int costs)
或者把 this.costs = costs;改成 this.costs = consts;
不过你的解答非常容易理解,谢谢^_^
那个“=”如果我没记错的话应该是赋值的意思吧?
就像this.day=day就是把传入的参数day赋值给当前类中定义的那个变量day
对不?