为什么第六行一定要写“Leaf3 increment()”?改成“increment()”返回“return i;”就不行?书上的例子是:
public class Leaf3
{
int i = 0;
Leaf3 increment()
{
i++;
return this;
} void println()
{
System.out.println("i = " + i);
} public static void main(String args[])
{
Leaf x = new Leaf();
x.increment().increment().increment().print();
}
};我把第六行改成:
public class Leaf3
{
int i = 0;
increment()
{
i++;
return i;
} void println()
{
System.out.println("i = " + i);
} public static void main(String args[])
{
Leaf x = new Leaf();
x.increment().increment().increment().print();
}
};
public class Leaf3
{
int i = 0;
Leaf3 increment()
{
i++;
return this;
} void println()
{
System.out.println("i = " + i);
} public static void main(String args[])
{
Leaf x = new Leaf();
x.increment().increment().increment().print();
}
};我把第六行改成:
public class Leaf3
{
int i = 0;
increment()
{
i++;
return i;
} void println()
{
System.out.println("i = " + i);
} public static void main(String args[])
{
Leaf x = new Leaf();
x.increment().increment().increment().print();
}
};
x.increment().increment().increment().print();但这样就不行了,每次返回的是对象,所以能继续调用increment()
2 楼主改写代码的
increment()//没有返回类型,编译是通不过的
{
i++;
return i;
}
每一次调用increment()都要使用到reference。
如果改成这样:
int increment()
{
i++;
return i;
}
public static void main(String args[])
{
Leaf x = new Leaf();
x.increment();
x.increment();
x.increment();
x.print();
}
这样可以达到相同效果