THINKING IN JAVA的例子
public class flower{
...
flower(int petals){
...
}
flower(String s){
...
}
flower(String s,int petals){
this(petals);
this.s = s;
}
flower()
{
this("hi",47);
}
public static void main(String[] args){
flower x = new flower();
}
}
书上说该例子说明,尽管可以用this调用一个构建器,但不可调用两个
即这一段:
flower(String s,int petals){
this(petals);
this.s = s;
}
请问是啥意思?this(petals)与this.s = s啥区别?
先后有关系吗?
写成
this.petals =petals与this(s)
可以吗?
虚心求教!!
public class flower{
...
flower(int petals){
...
}
flower(String s){
...
}
flower(String s,int petals){
this(petals);
this.s = s;
}
flower()
{
this("hi",47);
}
public static void main(String[] args){
flower x = new flower();
}
}
书上说该例子说明,尽管可以用this调用一个构建器,但不可调用两个
即这一段:
flower(String s,int petals){
this(petals);
this.s = s;
}
请问是啥意思?this(petals)与this.s = s啥区别?
先后有关系吗?
写成
this.petals =petals与this(s)
可以吗?
虚心求教!!
用this调用构建器时必须在一个构建器的第一行,目的是减少重复代码
this(petals)就是调用本类中的构造函数
flower(String s){
...
}
this.s = s就是赋值操作不可调用两个,是说,不能调用两次this()函数.
this(petals);意思就是,调用带本类的带单个int参数的构造函数,即调用flower(int petals)
this.s = s;意思就是,当前函数的s变量引用传入的参数s,简单的讲:参数s给函数的s赋值.首先你要记得this的两个用法:
1. (相当于C++) 引用当前活动对象;
2. this(...) 指的是调用本类的另外一个构造器.