黑马程序员技术交流社区
标题:
this(0)的作用?0可以改成别的数字吗?
[打印本页]
作者:
程媛媛
时间:
2013-3-21 18:25
标题:
this(0)的作用?0可以改成别的数字吗?
本帖最后由 程媛媛 于 2013-3-22 14:47 编辑
public class Demo1 {
final int var1;
final int var2 = 0;
Demo1(){
this(0);//this(0)的作用?括号里的内容改成别的数字吗?
}
Demo1(int x){
var1 = x;
}
}
作者:
我手心里的宝
时间:
2013-3-21 18:31
this(0)是调用本类的构造方法,0是为Demo1(int x){
var1 = x;
}
传值 这样在new对象时改变了其他的值
作者:
我手心里的宝
时间:
2013-3-21 18:32
不好意思按错键了,版主不要误会 哈,改变了成员变量的值,就是一个传参
作者:
唐永康
时间:
2013-3-21 18:38
public class Demo1 {
final int var1;
final int var2 = 0;
Demo1(){
this(0);//this(0)的作用?括号里的内容改成别的数字吗?
}
Demo1(int x){
var1 = x;
}
}
this(0)表示调用本类的一个参数为int型的构造方法,而你这个代码中有两个构造方法,分别是
空参数的Demo1(),和带int型参数的Demo1(int x);如果你上面的final int var1;没有赋值,可以变成其他的数字,但是var1是一个终态的变量。
去掉final的话,可以赋不同的值。如果这里想把值赋给var2就不行了,因为已经被赋值了,就不能被再赋值。
作者:
张文星
时间:
2013-3-21 18:40
java中this关键字的作用是代表当前对象,上面this.(0)表示单前对象的构造方,而且是有参的,参数为0,也就是你后面定义的Demo1(int x),所以可以改成其他的,只要没有约束就行。
作者:
杨杨
时间:
2013-3-21 18:56
能能能能
作者:
胡国彬
时间:
2013-3-21 21:28
完全可以,这个0相当于给var1这个变量赋值.
this(0)相当于Demo1(0),也就是相当于把0赋给了var1这个变量.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2