博主本人在学习this用法时,看书本都搞了很久才明白,现在就将所理解的,和怎么用分享给大家,如果有哪里写的不对,就请指出来~
上代码:(未使用this)
import java.util.*;
public class chapterFive {
int a;
int b;
public void setData(int a, int b){
a = a;
b = b;
}
public static void main(String[] args){
chapterFive p = new chapterFive();
p.setData(1,2);
System.out.println("p.a = " + p.a);
System.out.println("p.b = " + p.b);
}
}
这段代码跑出的结果是:
有可能会有疑问了,在主函数main()里不是传入参数1 和 2给setData()了嘛,为什么输出的结果是0 呢?
这是因为在主函数main()里是p.a 和 p.b 来调用类中的数据成员,而没用给类的数据成员进行赋值,所以他们的初始值都是0.
如果还是看不懂的话,再来一段代码未有this关键字
import java.util.*;
public class chapterFive {
int a;
boolean b;
public void setData(int a, boolean b){
a = a;
b = b;
}
public static void main(String[] args){
chapterFive p = new chapterFive();
p.setData(1,false);
System.out.println("p.a = " + p.a);
System.out.println("p.b = " + p.b);
}
}
结果如下:
这个结果还是显示default value.
下面,博主将粘贴各个基本数据类型的default value, 这或许对理解this有所帮助
如果代码变一下,就可以看到了结果有变化。
import java.util.*;
public class chapterFive {
int a;
int b;
public void setData(int a, int b){
this.a = a;
this.b = b;
}
public static void main(String[] args){
chapterFive p = new chapterFive();
p.setData(1,2);
System.out.println("p.a = " + p.a);
System.out.println("p.b = " + p.b);
}
}
结果如下:
使用了this 就能给类的数据成员赋值。
总结:(个人理解)
其实这个this 代表了class chapterFive了,用术语来说就是reference (引用), 用这个this来给类中数据成员赋值。
没有这个this, 就不能给类成员赋值, 到最后输出都是default value.
如果觉得不错,就用点赞或者关注来代替五星好评~
谢谢~