JAVA编程思想(第4版) 在构造器中调用构造器

来源:互联网 发布:51自学网办公软件 编辑:程序博客网 时间:2024/05/26 12:03

可能为一个类写了多个构造器,为了能够在一个构造器中调用另一个构造器,必须用到this关键字,this指"这个对象",表示对当前对象的引用。举个例子:

package test;public class Flower {int petalCount=0;String s="initial value";Flower(int petals){petalCount=petals;System.out.println("Constructor w/ int arg only,petalCount= "+petalCount);}Flower(String ss){System.out.println("Constructor w/ String arg only,s= "+ss);s=ss;}Flower(String s,int petals){this(petals);//构造器的调用必须是该构造器中的第一个语句//! this(s);//不能同时调用俩个构造器this.s=s;System.out.println("String &int args");}Flower(){this("hello",48);System.out.println("default constructor(no args)");}void printPetalCount(){//!this(10);//不能在非构造器类中调用构造器System.out.println("petalCount= "+petalCount+" s= "+s);}public static void main(String[] args) {Flower x=new Flower();x.printPetalCount();}}

运行结果如图:


小结:

1.构造器Flower(String s,int petals)表明需要将构造器的调用置于该构造器的第一个语句,从而利用this调用构造器,但是不能同时调用俩个构造器

2.方法printPetalCount()表明不能在非构造器类中调用构造器,而且编译器禁止在除构造器的其他任何地方调用构造器

0 0